Day2

1、default拒绝一切包外访问;protected接受包外的子类访问

要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以该类不加任何关键字

2、在正则表达式中:大写表示“非”,d表示digit数字。非数字就是\D, w表示word,非单词就是\W,\d:表示数字,等同于[0-9]

3、线程执行:

假设两线程为A、B,设有3种情况:
1.AB不并发:此时相当于两个方法顺序执行。A执行完后a=-1,B使用-1作为a的初值,B执行完后a=-2
2.AB完全并发:此时读写冲突,相当于只有一个线程对a的读写最终生效。相同于方法只执行了一次。此时a=-1
3.AB部分并发:假设A先进行第一次读写,得到a=1;之后A的读写被B覆盖了。B使用用1作为a的初值,B执行完后a=0

在这里插入图片描述
4、异常捕获

try:可能发生异常的语句
catch:捕获,并处理异常(printStackTrace()用来跟踪异常事件发生时执行堆栈的内容)
throw:方法内部抛异常
throws:声明方法异常
finaly:代码中无论是否有异常都会执行,清除资源

5、一个文件写入另一个文件,肯定是要先读取第一个文件的资源,所以是fileinputstream
在这里插入图片描述

6、存根(Stub)与以下哪种技术有关:动态链接

存根:如果一个类要实现一个接口,那么就要实现这个接口的全部方法,但这个类可能只需要其中的几个方法,所以会造成不必要的麻烦,存根就会实现这个接口,然后一个类实现存根类,这个类就不需要实现那么多的方法了。我是这么认为的,有一堵墙将本地Java虚拟机和远程Java虚拟机隔开。本地虚拟机创造stub对象,远程Java虚拟机创建skeleton对象,skeleton运行在远程对象所在的虚拟机上,接受来自stub对象的调用,这样墙两边就可以进行交流了,这种方式符合等到程序要运行时将目标文件动态进行链接的思想。

7、在这里插入图片描述
这一题不应该错,不要想当然的认为count = count++就是count++。count = count++ 原理是 temp = count; count = count+1 ; count = temp; 因此count始终是0 这仅限于java 与c是不一样的

8、Deprecated 注解

可以修饰类、方法、变量,在java源码中被@Deprecated修饰的类、方法、变量等表示不建议使用的

9、c是面向过程,java和c++都是面向对象,面向对象的三大特征是:封装、继承、多态。

10、
把常用的tar解压命令总结下:

tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。

11、
^表示异或 就是相同是0 不同是1
14是1110
3是0011
所以14^3=1101,即13
在这里插入图片描述
12、Swing在不同的操作系统中显示相同的风格
13、抽象类和接口

接口中可以含有 变量和方法。但是要注意,接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现

1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

2)抽象类不能用来创建对象;

14、Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。在大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果,没有多个线程,不需要礼让

15、
这是一个斐波那契数列
f(n)=f(n-1)+f(n-2)斐波那契数列
16、成员内部类中不能存在任何 static 的变量和方法,可以定义常量

因为非静态内部类是要依赖于外部类的实例,而静态变量和方法是不依赖于对象的,仅与类相关
简而言之:在加载静态域时,根本没有外部类,所在在非静态内部类中不能定义静态域或方法,编译不通过; 非静态内部类的作用域是实例级别

17、

1.外部类是不能直接使用内部类的成员和方法的,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法;

2.如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量, 可以使用 this 关键字,如:Outer.this.name

18、在这里插入图片描述
装箱过程中调用的是Double类的valueOf( double d )方法, 而这里是100为int型, 所以编译会“cannot convert from int to Double”。

这涉及到Java的装箱和拆箱,100默认是int类型,对于Integer和Double装箱只能装对应的数据类型,不对应就会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值