1、java的版本以及包含的内容概述
2、JDK,JRE的概念
jdk:JAVA的开发工具包
jre:java的运行环境
3、java为什么可以跨平台
A、JAVA的执行过程,java的源代码经过编译器编译成class,然后class是通过jre中的解释器解释执行的。
B. 对于windoes,linux,sun公司提供了对应jre的安装,使得我们的class,可以直接在不同的操作系统下被执行。
4、修饰符的规则:字母数字下划线$构成,不能数字开头
5、关键字
6、java的基本类型的面试点:
A.基本类型有哪些
b.基本类型的范围
7、运算符
||与|区别
区别1:| 可以做位的或运算 ,而||只有逻辑或运算功能
区别2:|作为逻辑运算的时候,前后都必须运算
||做位逻辑或运算的时候,是一个短路的逻辑运算(前面如果为true,后面就不参与运算了)
&&与&的区别
区别1:&可以做位的与运算 ,而&&只有逻辑与运算功能
区别2:&&逻辑与运算的时候是短路的(前面为false的时候,后面不执行) 而& 是非短路的逻辑与
--
8、java中switch后面就的变量的类型:byte short int char (1.4版本)
jdk1.5 增加 枚举类型
jdk1.7 增加 String
9、java取消了goto
10、java 的基本类型在运算的时候的类型转化
自动类型转化:
byte short int long float double 从左到右精度增大
a、byte,short在做运算的时候,会自动的转换为int
b、低精度的类型与高精度的类型运算的时候,转化为高精度的类型 int i=10; i+1.0 ---是一个double类型
c、高精度的类型的值,不能自动转化为低精度
强制类型转换
当需要把高精度的类型转化为低低精度的时候,可以使用(类型)写法,进行强制转化。
11、类与对象
面试:什么是对象
现实世界是有对象构成的:万事万物皆对象
java变成中用一些程序来“抽象”的描述现实世界的对象
描述对象的时候从对象的特征和行为两个部分
对象是类的实例
类是什么
具有共同的特征或者行为的很多对象归纳为一个类型:类就是一种类型
类是创建对象的一个模板
----
12、关于构造方法的理解
a、不带参数的构造方法,是类的默认的构造方法
b、如果显示的写一个带参数的构造方法,那么默认的构造方法就会失效,因此必须显示的写出不带参数的构造方法
c、构造方法只能在new一个对象的时候自动执行。
d、构造方法不能被继承
13、this的使用
a. 在一个构造方法中,调用本类的另一个构造方法
public Student(int y){
super(y); //调用了父类的构造方法
this.age = y;
System.out.println("一个参数的构造方法");
}
public Student(String x,int y){
this(y); //调用了只有一个参数的构造方法
this.name= x;
System.out.println("两个个参数的构造方法");
}
b.调用本来中的成员变量或者方法
14、super的使用
a.子类构造方法中显示的调用父类的构造方法,如果没有写,等效于写了super(),默认是调用父类不带参数的构造方法
b.使用super调用父类的成员变量或方法
15、static关键字
a.修饰的变量叫静态变量,修饰的方法叫静态方法。在类装载的过程中为变量分配空间,存储空间在“方法区”中。
静态变量或者方法可以用类.变量 ,类.方法调用.
B.静态方法不能直接调用成员变量和成员方法。
C. static{...} 静态初始化语句,用于类加载的时候,执行。类的加载只有一次,所有需要确保只执行一次的代码,可用
这种方式来处理。
16、final关键字
A.修饰变量---常量
b、修饰方法---方法不能再子类中被重写
c、修饰类-----不能被继承
17、String对象为什么说一旦创建就不能被修改?
/** The value is used for character storage. */
private final char value[];
18、Sting能不能被继承
不能,因为String类被final修饰
19、String与StringBuffer的区别
20、
-----------------------
String x=new String("abc");创建了几个对象
---->如果常量池没有"abc",会在常量池创建“abc",然后new Stirng 在堆中创建一个对象,把常量池中"abc"的内容拷贝过来。
所以创建的数量与常量池有没有"abc"有关。
----------------------
String x="abc"+"bdef"创建了几个对象 ;----->一个对象。 编译器在编译代码的时候会吧"abc"+"def"-->"abcdef" x="abcdef"
---------------------
String x="abc";
x=x+"def";创建了几个对象---->3个
21 java内存
方法区:类的信息,常量,静态变量
堆:创建的对象,对象的实例变量
栈:方法的局部变量
本地方法区:native 修饰的方法的变量
2、JDK,JRE的概念
jdk:JAVA的开发工具包
jre:java的运行环境
3、java为什么可以跨平台
A、JAVA的执行过程,java的源代码经过编译器编译成class,然后class是通过jre中的解释器解释执行的。
B. 对于windoes,linux,sun公司提供了对应jre的安装,使得我们的class,可以直接在不同的操作系统下被执行。
4、修饰符的规则:字母数字下划线$构成,不能数字开头
5、关键字
6、java的基本类型的面试点:
A.基本类型有哪些
b.基本类型的范围
7、运算符
||与|区别
区别1:| 可以做位的或运算 ,而||只有逻辑或运算功能
区别2:|作为逻辑运算的时候,前后都必须运算
||做位逻辑或运算的时候,是一个短路的逻辑运算(前面如果为true,后面就不参与运算了)
&&与&的区别
区别1:&可以做位的与运算 ,而&&只有逻辑与运算功能
区别2:&&逻辑与运算的时候是短路的(前面为false的时候,后面不执行) 而& 是非短路的逻辑与
--
8、java中switch后面就的变量的类型:byte short int char (1.4版本)
jdk1.5 增加 枚举类型
jdk1.7 增加 String
9、java取消了goto
10、java 的基本类型在运算的时候的类型转化
自动类型转化:
byte short int long float double 从左到右精度增大
a、byte,short在做运算的时候,会自动的转换为int
b、低精度的类型与高精度的类型运算的时候,转化为高精度的类型 int i=10; i+1.0 ---是一个double类型
c、高精度的类型的值,不能自动转化为低精度
强制类型转换
当需要把高精度的类型转化为低低精度的时候,可以使用(类型)写法,进行强制转化。
11、类与对象
面试:什么是对象
现实世界是有对象构成的:万事万物皆对象
java变成中用一些程序来“抽象”的描述现实世界的对象
描述对象的时候从对象的特征和行为两个部分
对象是类的实例
类是什么
具有共同的特征或者行为的很多对象归纳为一个类型:类就是一种类型
类是创建对象的一个模板
----
12、关于构造方法的理解
a、不带参数的构造方法,是类的默认的构造方法
b、如果显示的写一个带参数的构造方法,那么默认的构造方法就会失效,因此必须显示的写出不带参数的构造方法
c、构造方法只能在new一个对象的时候自动执行。
d、构造方法不能被继承
13、this的使用
a. 在一个构造方法中,调用本类的另一个构造方法
public Student(int y){
super(y); //调用了父类的构造方法
this.age = y;
System.out.println("一个参数的构造方法");
}
public Student(String x,int y){
this(y); //调用了只有一个参数的构造方法
this.name= x;
System.out.println("两个个参数的构造方法");
}
b.调用本来中的成员变量或者方法
14、super的使用
a.子类构造方法中显示的调用父类的构造方法,如果没有写,等效于写了super(),默认是调用父类不带参数的构造方法
b.使用super调用父类的成员变量或方法
15、static关键字
a.修饰的变量叫静态变量,修饰的方法叫静态方法。在类装载的过程中为变量分配空间,存储空间在“方法区”中。
静态变量或者方法可以用类.变量 ,类.方法调用.
B.静态方法不能直接调用成员变量和成员方法。
C. static{...} 静态初始化语句,用于类加载的时候,执行。类的加载只有一次,所有需要确保只执行一次的代码,可用
这种方式来处理。
16、final关键字
A.修饰变量---常量
b、修饰方法---方法不能再子类中被重写
c、修饰类-----不能被继承
17、String对象为什么说一旦创建就不能被修改?
/** The value is used for character storage. */
private final char value[];
18、Sting能不能被继承
不能,因为String类被final修饰
19、String与StringBuffer的区别
20、
-----------------------
String x=new String("abc");创建了几个对象
---->如果常量池没有"abc",会在常量池创建“abc",然后new Stirng 在堆中创建一个对象,把常量池中"abc"的内容拷贝过来。
所以创建的数量与常量池有没有"abc"有关。
----------------------
String x="abc"+"bdef"创建了几个对象 ;----->一个对象。 编译器在编译代码的时候会吧"abc"+"def"-->"abcdef" x="abcdef"
---------------------
String x="abc";
x=x+"def";创建了几个对象---->3个
21 java内存
方法区:类的信息,常量,静态变量
堆:创建的对象,对象的实例变量
栈:方法的局部变量
本地方法区:native 修饰的方法的变量