JDK : Java development kit 包括jre和编译器等程序
Jre :Java runtime environment 指的是java运行时环境。负责启动虚拟机,加载和运行class文件。
2、JVM:java virtual machine JVM是SUN公司定义的规范。
3、GC:Garbage collection 垃圾回收器。没有被引用的对象需要
回收。程序员不能调用GC,system.gc()是通知调用垃圾回收器。
4、一个java源文件可以定义多个class(类),可以定义多个public
类,但只能有一个main()方法。
5、Java基本8种数据类型
1个字节:byte、Boolean
2个字节:short、char(unicode编码,可用于存储汉字)
4个字节:int、float
8个字节:double、long
引用数据类型4个类接口数组
6、&和&&的区别:
&是计算机内部二进制按位进行“与”运算,都是1才是1
&&是逻辑运算理解为“且”
7、乘除2的n次方使用移位运算最快
8、堆区和栈区的区别
栈区:先进后出存放局部变量连续的存储空间
堆区:存放new出来的对象,不连续的存储空间9、
自动拆箱和装箱:装箱Integer a=3;编译器会自动装箱存储
变量时代码变为Integer a=new Integer(3);
拆箱:int a=new Integer(3);
int是基本类型,Integer是引用类型。怎么会没区别呢?基本类型存放在栈里面,引用类型放在堆里面。装箱安全性更高。例如list只能存放引用类型,可以使用list.add(new Integer(1))存放到list里面。
10、
常见的异常
IoException 数组越界异常nullpointerException
ClassNotFoundException RuntimeException
NoSuchMethodException
11、成员变量和静态变量
成员变量:从属于对象,存放在堆如果要调用需new一个对
象出来。
静态变量:从属于类,存放在方法区,调用时直接类.变量名
12 、重载和重写
重载:一个方法名多个方法方法名相同参数类型、个数、
顺序不同
重写:子类覆盖父类的方法
13\\包含抽象方法的类一定是抽象类抽象类不一定包含抽象
方法。
14、多态父类的引用指向子类对象例如Personperson=new Student(); spring中面向接口编程(Aop动态代理
使用的就是多态)
15、面向对象的三大特征封装继承多态
16、String不可变字符,只能初始化一次,StringBuilder和StringBuffer前者线程不安全,后者线程安全。
17、Java不支持类之间的多继承,即一个子类只能有一个父类。单继承性使得Java简单,易于管理程序,不会出现逻辑错误以及多继承自身的缺陷。为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口,从而在另一个更合理的角度来实现纯粹的多重继承性,实现接口使用关键字implements。子类与父类之间只可以单继承,类可以实现多个接口,接口之间可以实现多继承,即一个子接口可以使用extends关键字继承多个父接口,拥有多个父类,只需用逗号将接口名一一分开即可
18、若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。
19、容器之间的关系
20、map的遍历
public static void main(String[] args) {
Map map.put("1 map.put("2 map.put("3 //第一种:普遍使用,二次取值 System.out.println("通过Map.keySet遍历key和value:"); for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); } //第二种 System.out.println("通过Map.entrySet使用iterator遍历key和value:"); Iterator Map.Entry System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } //第三种:推荐,尤其是容量大时 System.out.println("通过Map.entrySet遍历key和value"); for (Map.Entry System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } System.out.println("通过Map.values()遍历所有的value,但不能遍历key"); for (String v : map.values()) { System.out.println("value= " + v); } } 当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及。 22、set的遍历 1.1.迭代遍历: 2.Set 3.Iterator 4.while (it.hasNext()) { 5. String str = it.next(); 6. System.out.println(str); 7.} 8. 9.2.for循环遍历: 10.for (String str : set) { 11. System.out.println(str); 12.} 13. 14. 15.优点还体现在泛型假如 set中存放的是Object 16. 17.Set