`

java知识总结

 
阅读更多

1:%:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。

 

2:java分了5片内存。

 

  1寄存器。2本地方法区。3方法区。4栈。5堆。

 

  栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 )

 

     只要数据运算完成所在的区域结束,该数据就会被释放。

 

  堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。

 

  1每一个实体都有内存首地址值。

 

  2堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。

 

  3垃圾回收机制。

 

3:AVA中除了RunTimeException类,其他异常均须捕获或抛出。

  常见的RunTimeException类(系统异常):NullPointException、 

ArrayIndexOutOfBoundsExcepton(数组越界异常)、ClassCastException(强制转换错误)

4:&与&&的区别 | 和 ||的区别

  &和&&都是逻辑与的运算符,但&&具有短路功能,当第一个表达式为false时,则不再计算第二

  个表达式。

  &可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。

  ||具有短路功能,当第一个表达式为true时,则不再计算第二个表达式。

5:char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含汉字,所以,

  char型变量中可以包含汉字unicode编码占用两个字节,所以,char类型的变量也占用两个字节。

6:使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容是可以

  改变的。final StringBuffer a = new StringBuffer("im");

       执行如下将报告编译器错误: a = new StringBuffer("");

       执行如下将通过编译:a.append("broken");

7:"=="与equals方法区别

  ==操作符比较两个变量的值是否相等,两个变量所对应内存中的所存储的数值是否相等。

  equals方法用于比较两个独立对象的内容是否相同

  String a = new String("foo");

  String b = new String("foo");

 两条new语句创建了两个对象,然后用a,b

  这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的

ab中存储的数值是不相同的,所以,表达式a==b将返回false,而这两个对象中的内容是

同的, 所以,表达式a.equals(b)将返回true如果一个类没有自己定义equals方法,它默认

equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否

是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则

总返回false如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须

覆盖equals方法

 

 

8:静态变量和实例变量的区别

  实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用

  这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称类变量。

public class VariantTest{

   public static int staticVar = 0;

    public int instanceVar = 0;

   public VariantTest(){

      staticVar++;

      instanceVar++;

System.out.println(“staticVar=” + staticVar + ”,instanceVar=” + instanceVar);

   }

}

 

 9:if(username.equals("zt")){} 若username是null,则会报NullPointException

 

10:Overload重载,Override重写

  Overload方法相同,参数个数或类型不同。

  Override表示子类中的方法与父类中的某些方法的名称和参数完全相同。

  也是面向对象编程的多态性的一种表现。

           1:返回值一致

           2:方法抛出的异常一致

           3:被重写的方法不能为private

11:面对对象的特征

  1:  封装

              目标是实现软件部件的”高内聚、低耦合“,对象是封装的最基本单位。

              原则:把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在

                      同一 个类中。

  2:  抽象

              抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类。

  3:  继承

              继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了

              软件的可重用性和可扩展性。

  4:  多态

               一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中

               实现的方法,必须在由程序运行期间才能决定。

12:java实现多态的机制

  靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象 。

13:内部类可以引用它的包含类的成员,但静态内部类不可以。

  calss Outer{

    static int x;

    static class Inner{

      void test(){

        syso(x);

      }

    }

  }

 

 14:Java中有几种类型的流?

    字节流,字符流。 字节流继承于InputStream OutputStream

                                  字符流继承于InputStreamReader OutputStreamWriter

 

 15:java序列化     Serializable接口作用

    我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如,要将java对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个java对象变成某个格式的字节流再传输,但是,jre本身就提供了这种支持,我们可以调用OutputStream的writeObject方法来做,如果要让java 帮我们做,要被传输的对象必须实现serializable接口,这样,javac编译时就会进行特殊处理,编译的类才可以被writeObject方法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable接口,该接口是一个mini接口,其中没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的。


例如,在web开发中,如果对象被保存在了Session中,tomcat在重启时要把Session对象序列化到硬盘,这个对象就必须实现Serializable接口。如果对象要经过分布式系统进行网络传输或通过rmi等远程调用,这就需要在网络上传输对象,被传输的对象就必须实现Serializable接口。

16:描述一下JVM加载class文件的原理机制

    JVM中类的装载是由ClassLoader和它的子类来实现的,java ClassLoader是一个

    重要的java运行时的系统组件。它负责在运行时查找和装入类文件的类。

 

17:垃圾回收器的基本原理

    对于GC,当程序员创建对象时,GC就开始监控这个对象的地址、大小,以及使用情况。

    通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。来确定哪些对象是”可达的“

    哪些对象是”不可达的“。当GC确定一些对象为”不可达“,时,GC就有责任回收这些内存空间。

    垃圾回收期可以马上回收内存,手动执行System.gc(),通知GC运行,但java语言规范并不保证GC一定执行

 

18:构造器Constructor是否可被override?

    构造器不能被继承,因此不能重写override,但可以被重载overload。

分享到:
评论

相关推荐

    java知识总结 android知识总结和j2ee知识总结

    Java知识总结: Java是一种广泛使用的面向对象的编程语言,以其跨平台、安全性高和可移植性强的特点而闻名。Java的核心特性包括封装、继承、多态和抽象,这些构成了面向对象编程的基础。Java虚拟机(JVM)使得Java...

    java知识总结.doc

    在Java知识总结中,我们涵盖了多个关键领域,包括基础语法、类库、并发处理、网络编程以及数据库访问等。 1. 面向对象:Java的核心特性之一就是面向对象编程(OOP)。它支持类、对象、封装、继承和多态等概念,使得...

    毕向东Java知识总结

    毕向东老师作为Java教育领域知名的讲师,在他的Java知识总结中涵盖了Java编程语言的各个方面,包括基础知识、语法基础、开发环境配置以及面向对象编程等核心概念。为了帮助理解,我们接下来将详细解析毕向东Java知识...

    Java知识总结-完整版

    ### Java知识总结——关键知识点详解 #### 一、Java概述 - **面向对象特性**:Java是一种完全面向对象的编程语言,它继承了C++的一些面向对象特性,并且简化了一些复杂的概念,如去掉了指针操作,使得程序更加安全...

    java知识总结.md

    java知识总结.md

    Java知识总结测试测试测试

    Java知识总结测试测试测试

    java 基础知识总结(经典)

    这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **Java环境配置**:在开始编程之前,必须安装Java ...

    JAVA知识总结与复习

    此资料为本人培训整理的基础知识,相信对于初学java的人有一定的帮助

    JAVA核心知识点总结.pdf

    《JAVA核心知识点总结》 Java作为一款广泛应用的编程语言,其核心知识点对于开发者来说至关重要。本资料旨在为准备面试或者系统学习Java的人员提供一个全面的复习框架。以下是对其中部分关键知识点的详细阐述: **...

    java 知识总结

    Java是一种广泛使用的高级编程语言,由...掌握这些基础知识对于理解和编写Java代码至关重要,同时也是面试中常见的考察点。通过深入学习和实践,可以逐步提高Java编程技能,从而在各种应用场景中有效利用Java进行开发。

    Java后端核心知识总结700页

    Java后端核心知识总结:JVM篇 Java后端核心知识总结:并发编程篇 Java后端核心知识总结:MySQL篇 Java后端核心知识总结:Redis Java后端核心知识总结:RabbitMQ Java后端核心知识总结:Kafak Java后端核心知识总结:...

    Java知识总结

    程序员入学Java知识测试 精华总结 J2SE部分 Java高新技术部分 7K面试题部分等入学要求的知识点总结

    java基础知识 java知识总结 学java好资料

    Java基础知识是学习Java编程的基础,涵盖了类、对象、数据类型、控制结构、异常处理、集合框架等多个方面。 1. **Java语法基础** - **变量与数据类型**:Java支持基本数据类型(如int, double, char等)和引用数据...

    java基础知识总结(超级经典)

    ### Java基础知识总结(超级经典) #### 一、Java概述 - **起源与发展**:Java语言始于1991年Sun公司的James Gosling等人发起的Oak项目,最初目标是为了控制嵌入式设备,如有线电视交换盒和个人数字助理(PDA)。...

    2014年corejava知识总结

    这是北京北京圣思园java培训的课堂笔记,记录了CoreJava的重点知识,在与java相关的职业笔试中考到的较多知识的记录。

    JAVA基础知识总结.

    JAVA基础知识总结 JAVA基础知识总结 JAVA基础知识总结

Global site tag (gtag.js) - Google Analytics