周题3

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调度和分派的基本单位

进程和线程的关系:

  • 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

  • 资源分配给进程,同一进程的所有线程共享该进程的所有资源。

  • 线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

  • 线程是指进程内的一个执行单元,也是进程内的可调度实体。

线程与进程的区别:

  • 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。

  • 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行。

  • 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。

  • 系统开销:在创建或撤销进程的时候,由于系统都要为之分配和回收资源,导致系统的明显大于创建或撤销线程时的开销。但进程有独立的地址空间,进程崩溃后,在保护模式下不会对其他的进程产生影响,而线程只是一个进程中的不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但是在进程切换时,耗费的资源较大,效率要差些。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容