java笔记java部分
简单说一下java跨平台的原理:将.java源文件编译成.class字节码文件,然后通过虚拟机进行翻译运行。
搭建java开发环境的步骤:先下载jdk配置环境变量,然后依次下载eclipse tomcat。
Java中int数据占几个字节:占四个,32位
面向对象的特点有哪些:
封装、继承、抽象、多态
抽象:忽略与当前目录无关的方面,更充分的注意到与当前目录有关的方面。
继承:子类继承父类应有的属性或者方法,并在基础上添加新的方法。
封装:将数据和对象进行包装,访问只能通过已定义的页面。
多态:不同类的对象对同一消息作出响应
有了基本数据类型,为什么还要包装类型?
1. 声明方式不同:
2. 存储方式及位置不同:
3. 初始值不同:
4. 使用方式不同:
说一下“==”和equals方法究竟有什么区别?
“==”比较的是内存地址
equals比较的是里面的值
讲一下String和stringBuilder的区别?stringBuffer和stringBuilder的区别?
String是字符串常量
StringBuffer 字符串常量(线程安全)
StringBuilder 字符串常量(非线程安全)
讲一下java中的集合?
List:有序可重复的元素
Set:无序不可重复的元素
Map:存放key-value形式的元素
8、ArrayList和LinkedList的区别?
ArrayList是数组,linkList是链表。
ArraylList查询的时候比较块,增、删、改比较慢,所以使用查询的比较多
linkList查询的时候比较慢,但是增加、删除、修改比较快,所以使用增加、删除、修改的比较多
讲一下HashMap和hashTable的区别?
相同点:存储key-value数据。
区别:
1. HashMap是可以把null作为key或者value,而HashTable是不可以的。
2. HashMap线程不安全,效率高。HashTable线程安全,效率低。
实现一个拷贝文件的工具类使用的是字节流还是字符流?
字节流
讲一下线程有几种实现方式?启动方式?区分方式?
继承thread 实现runnable接口
启动线程使用的是start方法,执行使用的是run方法
线程在创建完成之后,都需要设置名称
有没有使用过线程并发库?
使用过Java.util.current包使用过,提供了线程的运行,线程池的创建,线程生命周期的控制。
线程池的作用?
其实“线程池”就是用来存放“线程”的对象池。
因为创建一个线程的代价较高,因此我们使用线程池设法复用线程。就是这么简单。
讲一下什么是设计模式?常用的设计模式有哪些?
经过前人无数次的实践总结出来的,设计过程中可以反复使用、可以解决特定问题的设计方法。单例模式、工厂模式、代理模式。