牛客网刷题(纯java题型 121~150题)

359 阅读4分钟

封装主要为了隐藏内部代码
继承主要为了复用代码
多态主要为了改变对象行为

程序文件名必须与公共外部类名称完全一致,这是正确的,但是如果一个源文件中没有公共外部类,所有的外部类都是default,也是可以的,但是只要有public的外部类,就必须与程序文件名相同

正确的命令是 :
javac test.java
java test

final 属性在进行一次赋值之后就不能变了,如果是final对象引用,那么这个对象引用不能再指向其他的对象(也就是final对象的引用是不能变的),但是指向的这个对象是可以变的(也就是final对象本身的值或者内容是可以变的)

Thread是一个类,实现了Runnable接口
创建线程有三种方式:
1,实现Runnable接口,包括使用Runnable内部类,和外部类实现Runnable接口
2,继承Thread类
3,使用Callable和Future(在此未介绍)

Java是类C语言,去掉了指针和多继承,采用自动垃圾回收器

口诀: 单目乘除为关系,逻辑三目后赋值

确实是编译出错,而不是运行期错误
原因 : java中存在两种绑定方式,一种是静态绑定,一种是动态绑定
静态绑定和动态绑定的区别:
静态绑定发生在编译期间,动态绑定发生在运行期间
使用private,static,final(都是不能被子类重写的方法修饰符)修饰的方法,使用静态绑定,而虚方法(可以被子类override的方法)根据运行时的对象进行动态绑定
静态绑定使用类信息来完成,动态绑定使用对象信息来完成
重载(overload)使用静态绑定来完成
重写(override)使用动态绑定来完成
name为private属性, 属于静态绑定,在编译期间完成静态绑定,所以会在编译期间发现错误,而不是运行期间

HashMap 与 Hashtable的区别:
1,HashMap是线程不安全的,而Hashtable里面的方法大多是synchronized方法,因此Hashtable是同步的
2,HashMap允许null作为键和值,而Hashtable不允许null作为键和值
从Hashtable的源码来看其不允许null作为键和值的原因:
如果value == null ,就会throw NullPointerException
如果key == null,那么在调用Object类的hashcode()方法的时候,就会因为null.hashcode()而报NullPointerException

有符号右移/左移: >> <<
无符号右移/左移 >> <<
有符号右移>>: 如果最左位为1,则右移N位,就在左侧补N个1,如果最高位为0,就在左侧补N个0
无符号右移>>>: 右移N位,则在最左侧补N个0
0000 0010 >> 1 = 0000 0001
0000 1010 >> 2 = 0000 0010
1000 0010 >> 1 = 1100 0001
1000 1010 >> 3 = 1111 0001

即使不指定javac -encoding 也是可以通过编译且可以正确运行的

Math.cos(弧度)
radians 弧度
degree角度

解决哈希冲突的三种方法 :
链地址法: 如果hash之后冲突,则形成链表
开放地址法: 如果hash之后冲突,则通过探测算法,寻找空的地址(开放地址)
再哈希法
HashMap和Hashtable采用的是链地址法解决hash冲突
此外,HashSet使用HashMap来保存value,将value作为HashMap的key,这就是HashSet的value不能重复的原因

做这种题,不能先看选项,要先看好是选择对的还是错的,是单选,还是多选

java程序一共有三种 :
Applet,内嵌于Web文件中,由浏览器来观看
Application,可以独立运行
Servlet,运行在服务端

上面这题关于Struts ,还没弄明白


java中关键字和保留字不能用作标识符

编译程序的时候,所能指定的信息(javac参数)里面包括-classpath参数

常见的:ArrayList,LinkedList,HashSet,HashMap,LinkedHashMap,都是不同步的
集合中线程安全的类只有:Vector,Stack(Vector的子类),Hashtable,Properties(Hashtable的子类)是线程安全的,其余的都不是线程安全的

MVC中,model层代表数据,放业务逻辑(这点与做过的项目不一样)
controller层,处理与用户的交互

abstract 方法不能与final,static,private方法共存:
对于static方法,子类是不能override的,而abstract有要求子类必须override,矛盾