牛客网刷题(纯java题型 91~120题)

Java中的异常分类:
可分为:
RuntimeException:
运行时异常(战之过,程序员的过错),也叫做unchecked Exception, 非编译期异常(编译器检查不出来,只有运行时才能显现出来的异常,叫做非编译异常,或者运行时异常,一般是由于程序员逻辑错误引起的,如空指针异常,数组越界异常等,所以称之为战之过)

Exception中除了RuntimeException之外的所有异常,比如IOException,SQLException等
非运行时异常(非战之过),也叫做检查异常(check Exception) ,编译异常(编译期可以检查出来的异常,不需要运行就可以检测到的异常,比如IOException,SQLException,等预期之内的异常,因为可以预料到,因此是必须检查的异常,所以,也叫做check Exception)

常见的,IOException,SQLException,等所有继承与Exception,但是不继承与RuntimeException的,都属于非运行时异常,是必须在编写程序的时候就要throw的
所有继承与RuntimeException的,都是程序员逻辑错误引起的异常,比如空指针异常等,是unchecked Exception

Exception和Error,都继承于Throwable

注意,只能被static或者default之一修饰,如果被static和default同时修饰,就会报错

private: 只在本类内部具有可见性
public: 在所有地方都可见
特殊记忆:
protected(3个可见性): 本类,子类,包内
default(2个可见性): 比protected访问性差,只有在本类和包内可见,对子类不可见
protected和deault就差一个对子类的可见性,protected比default开放,所以protected对子类是可见的
只有private不具有包内可见性,其余的,都至少有两种访问权限
private,dafault,protected,public的访问权限,分别为 1,2,3,4
对子类,只有public和protected是可见的,private和default是不可见的

InputStream , OutputStream , 输入流,输出流 的区分方法:
文件传输的时候,相当于File 与 程序 之间的一个对话, input和output都是相对于程序本身来说的:
如果说从文件中读取内容,以程序作为参考系,就是输入,也就是需要输入流InputStream
反之,如果说向文件中写入内容,以程序作为参考系,就是输出,也就是需要输出流OutputStream

基本类型间的相互转换:
char->int
byte-> short -> int ->long
long->float->double
或者 long->double
boolean不可以转换成其他基本类型

serialize 将java对象序列化为二进制文件

Math.round()有两个API,一个是: int round(float f),另一个是long round(double d) ,注意返回值
round的计算方式是 +0.5 然后向下取整:
Math.round(a) == Math.floor(a+0.5);

java没有指针的概念
java不支持操作符重载
操作符重载就是把操作符(比如'+,-,*,/'这些运算符)赋于新的意义。C++支持操作符重载

String a = new String("string1");
a += "well"; 的执行过程
a = new StringBuffer(a).append("well").toString;

abstract方法必须被实现

final使用前必须初始化,且 final变量的初始化只有三种方式: 声明时初始化 ,或者构造函数中初始化,或者在代码块中初始化,不能在普通方法中对final进行使用前的初始化

由-n = ~n + 1 可知,~n = -n -1 ,所以~j = -11

公共类,如果是公共内部类的话,是不需要与文件名相同的

default不能修饰变量,可以修饰方法,但是也不能显示的写在方法前面

for循环中会抛出异常,然后进入finally块,然后直接停止执行被调用的test()方法,进入到调用方法的catch()语句,而不会继续进行for循环

Vector和Stack是List,而不是Set

Semaphore 是信号量,用于限制一个资源的最大同时访问线程个数
CyclicBarrier(屏障): 让多个线程到达一个屏障(同步点)的时候被阻塞,直到最后一个线程到达了,屏障才会打开,几个线程再同时运行
CountDownLatch: 倒数锁: 一个线程,在等待另外的一组线程完成后才能开始运行
CyclicBarrier与CountDownLatch的区别:
CyclicBarrier是所有线程都等待,然后一起运行,就像小学生放学
CountDownLatch是等所有线程都执行完某一个动作,然后才允许另外的线程运行
CountDownLatch的计数器只能使用一次,而CyclicBarrier中的计数器可以通过reset()重置
Counter不是并发编程的同步器

1,只有静态内部类才能有静态方法
2,静态内部类(不论是静态内部类中的普通方法还是静态方法)不能访问外部类中的非静态属性
3,抽象方法不能有方法体

转载于:https://juejin.im/post/5b449db2e51d45195866c378

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值