牛客网Java选择题的一些整理

来源:互联网 发布:淘宝网冬季舞靴 编辑:程序博客网 时间:2024/05/16 05:25

1、java的访问权限有public、protected、private和default的,default不能修饰变量

 

2、线程安全概念:

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

 

线程安全问题都是由全局变量静态变量引起的。

 

若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。

 

LinkedList 和 ArrayList 都是不同步的,线程不安全;

Vector 和 Stack 都是同步的,线程安全;

Set是线程不安全的;

 

Hashtable的方法是同步的,线程安全;

HashMap的方法不是同步的,线程不安全;

 

3、基本类型和包装类是两回事,不是同一个概念。包装类像普通的类一样,封装了一系列的方法

 

4、方法可以和类名同名,但是构造函数只要和class类名相同就好了
构造器只有在new的时候才能调用,哪怕你在类中使用this(),它也得等new对象的时候才能调用到

 

5、方法执行完毕后,局部变量就会释放内存,作用域范围外就没有作用了;而方法进行的对堆内存的改变依旧保存

 

6、效率比较String<StringBuffer<StringBuilder,但是在 String S1 = “This is only a” + “ simple” + “ test”时,String效率最高。

 

7、StringBuffer每次做操作都是对对象本身的操作

 

8、private是私有变量,只能用于当前类中,题目中的main方法也位于当前类,所以可以正确输出

 

9ArrayList的构造函数总共有三个:

1)ArrayList()构造一个初始容量为 10 的空列表。

2)ArrayList(Collection<? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。

3)ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。

调用的是第三个构造函数,直接初始化为大小为20的list,没有扩容

 

10、静态方法中不能访问非静态变量或者方法啊,任何时刻都是如此,没有例外

11、LinkedList是实现了List接口,并非是继承

12、接口中不能声明变量,声明的是常量

13、if(flag = true),这是并不是判断flag是否等于true了,而是把true的值赋值给了flag

14、main()函数是一个前台进程,前台进程是程序中必须执行完的,而后台线程则是在java中所有前台结束后结束的,不管有没有完成,后台线程主要用于内存分配等方面。

15、创建对象的时候,如果有代码块,那么一定会执行代码块;类的加载我觉得大概率就是从上向下依次加载吧

16、我是真的懵,protected访问控制是当前包和其子类,而缺省default是当前包

17、Instanceof在进行比较的时候,会使用对象实际的类型,如果是ArrayList.get到的,尽管是Object,但是其实是根据往里存的时候的类型所比较的

18、this这个关键字不可以在静态方法中使用

19、一个子类继承父类时,会先加载静态代码块,然后是父类的代码块,父类的构造器,接着是子类的代码块,子类的构造器;

20、native关键字修饰的方法是原生态方法,具体的实现可能使用C语言、C++来实现的,所以此类的方法效率都很高

21、关于ClassLoader

22、volatile关键字

当一个变量被定义为volatile之后,就可以保证此变量对所有线程的可见性,即当一个线程修改了此变量的值的时候,变量新的值对于其他线程来说是可以立即得知的。可以理解成:volatile变量所有的写操作都能立刻被其他线程得知。但是这并不代表基于volatile变量的运算在并发下是安全的,因为volatile只能保证内存可见性,却没有保证对变量操作的原子性。

23、Thead不是抽象类,可以重写run方法,所以一个子类继承父类的话,可以不重写run方法,而子类如果直接调用run的时候,调用的是子类的方法

24、能被java.exe运行的方法一定有main方法,main方法是程序的入口,想起来原来报错提示没有main方法了

25、字符串在赋值的时候,如果赋的值都是已知的常量的话,字符串就会存到常量池中;而只要存在变量的话,编译器就无法判断,所以就会存放在堆中;因为变量只有在运行的时候才知道他的值;而常量的话在编译的时候就知道了;final修饰的也是在运行时才知道赋值结果的,所以final修饰的也不可以

26、构造方法只能通过new来调用,或者通过this使用,不可以直接使用

27、synchronized很强大,既可以保证可见性,又可以保证原子性,而volatile不能保证原子性!

泛型指定的元素不具有继承的特性。不能将泛型中的派生类类型复制给基类类型。

泛型通配符

  ?:任意类型,如果没有明确,那么就是Object以及任意的Java类了

  ? extends E:向下限定,E及其子类

  ? super E:向上限定,E及其父类

28、Abstract类中不应该有private的成员,但是可以有;但是 如果有的话违背了设计的原则,所以不应该有

29、Throwable是可抛出的意思,Exception是异常;Error是错误;所有的异常都是直接继承自Exception的;

30、新线程被创建之后不会自动执行,需要使用start方法才可以启动

31、泛型仅仅是java的一颗语法糖,它不会影响java虚拟机生成的汇编代码,在编译阶段,虚拟机就会把泛型的类型擦除,还原成没有泛型的代码,顶多编译速度稍微慢一些,执行速度是完全没有什么区别的。

32、Thread.sleep() 和 Object.wait(),都可以抛出 InterruptedException。这个异常是不能忽略的,因为它是一个检查异常(checked exception)

33、内部类可以public修饰,所以一个类中可以有多个public class

34、//通过移位计算2的次方

        return 1<<(number-1);    

35java中true ,false , null在java中不是关键字,也不是保留字,它们只是显式常量值,但是你在程序中不能使用它们作为标识符。 

其中const和goto是java的保留字。java中所有的关键字都是小写的,还有要注意true,false,null, friendly,sizeof不是java的关键字,但是你不能把它们作为java标识符用 

36、if(str==null||str.trim().equals(""))return str;  在对字符串进行处理的时候,这一句话很重要,肯定会经常用到的

37、在文件夹复制时,父目录不能直接复制到子目录

if(dest.getAbsolutePath().contains(src.getAbsolutePath()))   如果子目录中的路径含有父目录的话,很明显就不可以了

File newFile =new File(dest,src.getName());

文件创建时,可以传两个参数 ,第一个是路径,第二个是文件名称

然后newFile.createNewFile()就可以了

35、const和goto既是保留字又是关键字,其余的保留字和关键字严格区分;

 

 

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小婴儿体重不长怎么办 2岁半宝宝不说话怎么办 米兰叶子掉光了怎么办 qq雷霆战机闪退怎么办 微信限额20万怎么办 欧拉方程x<0怎么办 柿子核吃下去了怎么办 橡胶底白色变黄怎么办 20了丁丁还很小怎么办 5角硬币吞进肚子怎么办 孩子吞了5角硬币怎么办 左腿比右腿微粗怎么办 一个腿长一个腿短怎么办 刚买的毛笔很硬怎么办 我哥哥太爱我了怎么办 如果婚姻无法维持该怎么办 捡了一只流浪狗怎么办 微博加载不出来怎么办 我的脾气很暴躁怎么办 歌单恢复已删除怎么办 家里破产了我该怎么办 对付有心计的人怎么办 上嘴唇无故肿了怎么办 下嘴唇肿了一半怎么办 狗狗早上叫不停怎么办 狗在家乱咬东西怎么办 狗狗晚上一直叫怎么办 金毛幼犬晚上叫怎么办 金毛晚上老是叫怎么办 5岁宝宝总尿裤子怎么办 2岁宝宝尿裤子怎么办 2周岁宝宝尿裤子怎么办 5岁宝宝尿裤子怎么办 模拟人生4不怀孕怎么办 狗狗的毛打结怎么办 狗狗生病了不吃东西怎么办 给领导送礼不收怎么办 国外弃货,货代怎么办 不小心拜了阴庙怎么办 要考试了不想考怎么办? 刚怀孕喝了红酒怎么办