Java学了一段时间了,无论怎样都会有些收获,接下来做一个小小的总结
- Java的八大基本数据类型
- byte,short,int,long,float,double,char,boolean
- JDK1.5版本之后的自动装箱和自动拆箱功能
- Int a = 1;
- Integer int1 = a;//装箱
- Int int2 = int1;//拆箱
- 三目运算符(?:)
- 格式:int a = 0;System.out.print( (a > 1) ? “a > 1” : “a < 1”);
- 冒号的左边是如果问号左边的条件成立的话就输出a>1,否则输出a<1
- 声明数组的方式
- int[] a;
- Int a[];
- 两者的效果是一样的,但第二种不推荐
- 循环语句
- for循环
- while循环
- do...while循环
- Java增强型for循环
- 继承
- Java不支持多继承,但可以多重继承
- 抽象类
- 抽象类不能被实例化,所以抽象类必须被继承才能被使用
- List、Set、Map 之间的区别是什么
- 这三个都是容器
- List:
- 可以允许重复对象
- 可以插入多个null元素
- 是一个有序容器
- Set:
- 不允许重复对象
- 只允许一个null元素
- 无序容器
- Map:
- Map不是Collection的子接口或实现类。Map是一个接口
- Map 的每个Entry都特有两个对象,也就是一个键一个值,Map可能会持有相同的值对象但键对象必须是唯一的
- Map里可以拥有随意个niull值但最多只能有一个null键
- JRE,JDK,JVM之间的关系
- JRE是运行时环境,JDK是java开发工具包,JVM是java虚拟机
- JDK包含JRE,JRE包含JVM
- 接口的意义
- 概括一点说就是:规范,扩展,回调
- Java中==和eqauls()的区别
- ==是运算符,比较两个变量是否相等,eqauls()是Object类的方法,比较两个对象是否相等。
- 简单来说基本类型用==是比较他们的值,对象用==时比较的是内存地址
- &和&&的区别
- &是位操作,&&是逻辑运算符,&不具有短路特性,&&具有短路特性
- 访问控制符可访问的范围大小
- final修饰符
- 可以修饰变量,方法和类。
- 用final修饰变量的话,说明该变量的值在初始化后不能改变。
- 修饰方法的话不能被重写。
- 修饰类的话不能被继承。
- finally块
- Finally块在jvm虚拟机没有停止的情况下一定会执行,无论try块中是否有异常
- static关键字
- 静态变量和静态方法。被static修饰的变量和方法,该类都可以调用
- StringBuffer类
- StringBuffer是线程安全的
- StringBuffer是对对象本身操作,而不是产生新的对象,所以有大量拼接的情况下,建议用StringBuffer