21、访问权限修饰符public、private、protected以及不写(默认)时的区别
22、两个对象值相同(x.equals(y) == true),但却可有不同的hashCode,这句话对不对?
23、什么是B/S架构?什么是C/S架构?
24、Java都有那些开发平台
25、Java是否需要开发人员回收内存垃圾吗?
26、什么是数据结构?Java的数据结构有那些?
27、什么是隐式转换,什么是显式转换?Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型?
28、例如: if(a+1.0=4.0),这样做好吗?针对浮点型数据运算出现的误差的问题,怎么解决?
29、程序的结构有那些
30、线程与进程的区别
21、访问权限修饰符public、private、protected以及不写(默认)时的区别
修饰符 | 当前类 | 同包 | 子类 | 其他包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
22、两个对象值相同(x.equals(y) == true),但却可有不同的hashCode,这句话对不对?
不对,如果两个对象x 和 y 满足 x.equals(y) == true,它们的哈希码(hashCode)应当相同。
Java 对于eqauls 方法和 hashCode 方法是这样规定的:
(1)如果两个对象相同(equals 方法返回 true),那么它们的hashCode 值一定要相同;
(2)如果两个对象的 hashCode 相同,它们并不一定相同。
23、什么是B/S架构?什么是C/S架构?
-
B/S(Browser/Server),浏览器/服务器程序
-
C/S(Client/Server),客户端/服务端,桌面应用程序
24、Java都有那些开发平台
-
JAVA SE:主要用在客户端开发
-
JAVA EE:主要用在web应用程序开发
-
JAVA ME:主要用在嵌入式应用程序开发
25、Java是否需要开发人员回收内存垃圾吗?
大多情况下是不需要的。Java提供了一个系统级的线程来跟踪内存分配,不再使用的内存区将会自动回收
26、什么是数据结构?Java的数据结构有那些?
-
数据结构:计算机保存,组织数据的方式
-
线性表(ArrayList)、链表(LinkedList)、栈(Stack)、队列(Queue)、图(Map)、树(Tree)
27、什么是隐式转换,什么是显式转换?Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型?
-
显示转换就是类型强转,把一个大类型的数据强制赋值给小类型的数据;
-
隐式转换就是大范围的变量能够接受小范围的数据;
-
隐式转换和显式转换其实就是自动类型转换和强制类型转换。
-
Char在java中也是比较特殊的类型,它的int值从1开始,一共有2的16次方个数据;Char<int<long<float<double;
-
Char类型可以隐式转成int,double类型,但是不能隐式转换成string;
-
如果char类型转成byte,short类型的时候,需要强转。
28、例如: if(a+1.0=4.0),这样做好吗?针对浮点型数据运算出现的误差的问题,怎么解决?
-
不好,因为计算机在浮点型数据运算的时候,会有误差,尽量在布尔表达式中不使用浮点型数据(if,while,switch中判断条件不使用浮点型)
-
使用Bigdecimal类进行浮点型数据的运算
29、程序的结构有那些
- 顺序结构、选择结构、循环结构
30、线程与进程的区别
进程是系统进行资源分配和调度的一个独立单位,线程是CPU调度和分派的基本单位
进程和线程的关系:
-
一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
-
资源分配给进程,同一进程的所有线程共享该进程的所有资源。
-
线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
-
线程是指进程内的一个执行单元,也是进程内的可调度实体。
线程与进程的区别:
-
调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。
-
并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行。
-
拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。
-
系统开销:在创建或撤销进程的时候,由于系统都要为之分配和回收资源,导致系统的明显大于创建或撤销线程时的开销。但进程有独立的地址空间,进程崩溃后,在保护模式下不会对其他的进程产生影响,而线程只是一个进程中的不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但是在进程切换时,耗费的资源较大,效率要差些。
网友评论