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

5705dcc26ca4299780806c7b31d2f244.png

Java中的异常分类:

可分为:

RuntimeException:

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

Exception中除了RuntimeException之外的所有异常,比如IOException,SQLException等

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

常见的,IOException,SQLException,等所有继承与Exception,但是不继承与RuntimeException的,都属于非运行时异常,是必须在编写程序的时候就要throw的

所有继承与RuntimeException的,都是程序员逻辑错误引起的异常,比如空指针异常等,是unchecked Exception

3a551f3c09d8bcc8cad1b7aad443f2a7.png

Exception和Error,都继承于Throwable

28955bad817cb312e6de14258951dca9.png

c03aa2d6ac0c92e4b5384c3db0d29ebb.png

325efb6a5c7ee229b1ad4d3804aa3aa5.png

b070677c3ee74d8872628f4477df5651.png

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

d9f9e4da4e9ecfa15573c0346f591850.png

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是不可见的

371e71d369f643e1acba608a6cad81d7.png

36255c7b337e4e8042e8772f2abbda06.png

InputStream , OutputStream , 输入流,输出流 的区分方法:

文件传输的时候,相当于File 与 程序 之间的一个对话, input和output都是相对于程序本身来说的:

如果说从文件中读取内容,以程序作为参考系,就是输入,也就是需要输入流InputStream

反之,如果说向文件中写入内容,以程序作为参考系,就是输出,也就是需要输出流OutputStream

27479b46a7356c754c86319ecc1fba5a.png

基本类型间的相互转换:

char->int

byte-> short -> int ->long

long->float->double

或者 long->double

boolean不可以转换成其他基本类型

da819ba5a04f36c4fcb11cc868760e50.png

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

b43f79797aec9d831cedaf30065d0f77.png

Math.round()有两个API,一个是: int round(float f),另一个是long round(double d) ,注意返回值

round的计算方式是 +0.5 然后向下取整:

Math.round(a) == Math.floor(a+0.5);

ef38a7b5c8caf965625b6f3735ea1b86.png

java没有指针的概念

java不支持操作符重载

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

afbf41f1eac9e0a0a78a21edad0b4bab.png

ed65f73e0f4037202402efc259659753.png

String a = new String("string1");

a += "well"; 的执行过程

a = new StringBuffer(a).append("well").toString;

06a79193069ee48cb0fffb92099a1b39.png

4e0e7a2fccb03f68fdcb7acce68268ca.png

abstract方法必须被实现

54facdde316f05f5fd0a7dc3e7c48130.png

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

44006325b6879a7dffa845d09cabbf66.png

6875c3d449c7d07dd71ad640388ca043.png

034158e5a57498b78af1f3c11b7d65e2.png

71f38981aebc9b78f44fc1cf8185d49c.png

7d82e45166dd269ac401d0d618de7e2b.png

24e07e858add4ea6ee28be4b5327f466.png

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

88cad2956a87386838ca6b1f3383b83b.png

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

708c72800cf9b1644b65e84a45f9ecb0.png

4f8084ba673f320f18812f4d20fc6b05.png

09da9a0a51dfb3551de37cd9db84b249.png

4626f66d110a69982a035812a1877653.png

7a808a7f013f54508d24e22dcaa106d3.png

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

ebecea5a85c0463c3b53aadedb7e8771.png

d5a64ac20bb04dbf42acb06f11eb2064.png

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

18d68e52d487933ba6ef7aba42beed7a.png

Vector和Stack是List,而不是Set

cac00399ff0ae4941edfce37ad87fc55.png

Semaphore 是信号量,用于限制一个资源的最大同时访问线程个数

CyclicBarrier(屏障): 让多个线程到达一个屏障(同步点)的时候被阻塞,直到最后一个线程到达了,屏障才会打开,几个线程再同时运行

CountDownLatch: 倒数锁: 一个线程,在等待另外的一组线程完成后才能开始运行

CyclicBarrier与CountDownLatch的区别:

CyclicBarrier是所有线程都等待,然后一起运行,就像小学生放学

CountDownLatch是等所有线程都执行完某一个动作,然后才允许另外的线程运行

CountDownLatch的计数器只能使用一次,而CyclicBarrier中的计数器可以通过reset()重置

Counter不是并发编程的同步器

e0eeeffe8479541b68b5480e251504d2.png

5b71149f86d46920b4e1aebbafdc1199.png

1,只有静态内部类才能有静态方法

2,静态内部类(不论是静态内部类中的普通方法还是静态方法)不能访问外部类中的非静态属性

3,抽象方法不能有方法体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值