2021年数梦工厂笔试题 您所在的位置:网站首页 数梦工厂待遇 2021年数梦工厂笔试题

2021年数梦工厂笔试题

2023-10-25 16:18| 来源: 网络整理| 查看: 265

文章目录 一、单选题 1. 编译和运行以下代码的结果是什么(本题3分) 2. 下列链表的描述,下列语句正确的有(本题3分) 3. 根据下述代码,关于编译描述正确的为(本题3分) 4. 执行如下程序后,a的值是(本题3分) 5. 编译和运行以下类的结果是什么?(本题3分) 6. 根据下述代码,输出的结果是(本题3分) 7.根据下述代码,正确的输出值为(本题3分) 8. 根据下列代码,正确的输出值为(本题3分) 9.下列程序的输出内容为(本题3分) 10. 若要求”查询选修了3门以上课程的学生的学生号“,正确的SQL语句是(本题3分) 11. 正确使用索引可以提高查询效率,productLine列已经添加索引,如下哪些表达式会使用索引?(本题3分) 12. 在SQL语句中,与表达式 name NOT IN ("wh1","wh2") 功能相同的表达式是(本题3分) 二、 多选题 13. 下列有关于public,protected,private的描述不正确的是(本题5分) 14. 下面选项中定义正确的有(本题5分) 15.下列选项中定义或者描述正确的有(本题5分) 16. 关于接口和抽象类,下面选项中说法正确的有(本题6分) 17. 下列哪些函数能保证线程将离开运行状态?(本题6分) 18. 下列有关 try 语句的描述,正确的有(本题6分) 19. 下面哪些是 NIO 包特点(本题6分) 20. 如下复合索引(a,b,c),实际生效的索引是?(本题5分) 三、判断题(每题2分) 21. HashMap 和 TreeMap都允许 key 或 value 的值为 null。 22. Hashtable 和 ConcurrentHashMap 都不允许 key 或 value 的值为 null。 23. 程序使用 Thread.sleep(0) 语句时,可以删除该行代码,程序运行效果时一样的。 24. wait() 方法必须用在同步代码块或方法中。 25. sleep 和 wait 都会释放持有的锁资源。 26. 可以通过 for 循环遍历删除集合中的元素。 27. 变量定义 String 1abc =“abc”,是可以编译通过的。 28. volatile 关键字可以保证变量的可见性、有序性、原子性。 29. static 修饰的方法不能调用非 static 修饰的方法或变量。 30. 抽象类不可以使用 final 关键字来修饰。 注意: 一、单选题 1. 编译和运行以下代码的结果是什么(本题3分) public class StreamTest { public static void main(String[] args) { String a="apple"; String b="apple"; String c=new String("apple"); String d=new String("apple"); System.out.println(a==b); System.out.println(a==c); System.out.println(c==d); System.out.println(a.equals(c)); System.out.println(c.equals(d)); } }

解析:true ,false , false , true ,true

用String定义字符串变量时,会先在常量池里面找有没有字符串apple,如果没有就把字符串apple放到常量池,变量名指向常量池中的地址,如果字符串已存在那么就不再重复放字符串到常量池了,变量名直接指向常量池中的地址

用new String()定义变量时,会和普通的引用类型一样,在堆中新建字符串apple,变量名指向堆中的地址

==对于基本类型来说是值比较,对于引用类型来说是引用的比较;而equals()默认情况下是引用比较,只是很多类重写了equals()方法,比如String、Integer等把它变成了值比较,所以一般情况下equals比较的是值是否相等

2. 下列链表的描述,下列语句正确的有(本题3分)

A. 在操作new ArrryList(20);中,链表扩充了一次。

B. 对于随机访问get和set操作时,ArrayList比LinkedList更合适。

C. ArrayList是线程非安全的,LinkedList是线程安全的。

D. 在链表初始化时,如果像new ArrayList(20);一样指定了链表长度时,则在插入第21个元素时,会抛出异常。

解析:

A. ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍; ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,创建时直接分配其大小,没有扩充。所以,扩充为0次

B. 如果集合数据是对于集合随机访问 get 和 set,ArrayList 绝对优于 LinkedList,因为 LinkedList 要移动指针,耽误时间。如果集合数据是对于集合新增和删除操作 add 和 remove,LinedList 比较占优势,因为 ArrayList 要移动数据。所以 B 正确

C. ArrayList 和 LinkedList 都是线程非安全的

D. 不会抛出异常,而是会自动扩容为原来长度的1.5倍。

3. 根据下述代码,关于编译描述正确的为(本题3分) package c05; public class ab { public int a; private int b; protected int c; int d; public void f1(){ } private void f2(){ } protected void f3(){ } void f4(){ } } package c06; public class a { public static void main(String[] args) { co5.ab t=new co5.ab(); t.a=1; t.b=2; //编译错误 t.c=2; //编译错误 t.d=2; //编译错误 t.f1(); t.f2(); //编译错误 t.f3(); //编译错误 t.f4(); //编译错误 } }

解析:

​ private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

​ default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

​ protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

​ public : 对所有类可见。使用对象:类、接口、变量、方法

如下图:

4. 执行如下程序后,a的值是(本题3分) int a=10; do{ a--; }while (a-->0); System.out.println(a);

A. 0

B. -1

C. 1

D. 死循环

E. -2

解析:选 E. 因为,while(a-->0) 自减条件在while循环中,即使条件不符,后减的a仍会执行;但如果a--放在了循环体中的话,后减的a就不会执行了

引申:i--,--i、i++、++i i-- 即 后减减 ,原理是:先自减,然后返回自减之前的值。 本例中,倒数二次循环 a=2时,a--,使得a=1,然后条件判断是a=1与0判断,条件满足,然后才自减一,使得 a=0, 最后一次循环,a-- , a=-1,然后 -1小于0,条件不满足,退出循环,但是 a 还是要自减一,使得 a 的最后值为 -2 .

--i 即 前减减 ,原理是:先自减,然后返回自减之后的值 同理:i++、++i 也是如此。

5. 编译和运行以下类的结果是什么?(本题3分) public class Test { public void methodA(int i){ System.out.println(i); } public int methodA(int i){ System.out.println(i); } public static void main(String[] args) { Test X=new Test(); X.methodA(5); } }

A. 该程序编译并运行打印5。

B. 该程序编译错误。

C. 该程序运行时异常,因为它找不到方法TesthodA(int)。

D. 该程序编译并运行打印6。

解析: 选 B

​ 该题考的是方法的重载:即发生在同一个类中,方法名相同参数列表不同(参数类型不同、个数不同、顺序不同),与方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分。故本题的methodA(int i)被定义了两次,造成编译错误

引申:

方法的重写:发生在父子类中,方法名、参数列表必须相同,返回值小于等于父类,抛出的异常小于等于父类,访问修饰符大于等于父类(里氏代换原则);如果父类方法访问修饰符为private则子类中就不能重写。

6. 根据下述代码,输出的结果是(本题3分) public class listTest { public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); for (Integer item:list){ if (item.equals(2)){ list.remove(item); } } System.out.println(list); } }

A. 打印“[1,2]”

B. 运行时发生异常

C. 编译错误

D. 打印“[1]”

解析: 选 B 。因为 remove(int index) 是删除链表中指定位置的元素,而链表中只有0,1位置有元素。

7.根据下述代码,正确的输出值为(本题3分) public class Demo { public static void main(String[] args) { StringBuilder a= new StringBuilder("A"); StringBuilder b= new StringBuilder("B"); operate(a,b); System.out.println(a+","+b); } private static void operate(StringBuilder x, StringBuilder y) { x.append(y); y=x; } }

​ A. A,AB

​ B. A,B

​ C. AB,B

​ D. 编译错误

​ E. AB,AB

解析: 选 C 。

a指向A,b指向B, operate():x指向A,y指向B----------------调用方法:x指向AB,y指向了X为AB

之后:a指向的值变成了AB,b指向的还是B。

如下图:

8. 根据下列代码,正确的输出值为(本题3分) public class Start { public static void main(String[] args) { new Apple(); } } class Fruit { Fruit(){ System.out.println("init a fruit"); } } class Apple extends Fruit { private double w=initW(); private static String color =initC(); Apple(){ System.out.println("init an apple"); } private static String initC() { System.out.println("init c"); return ""; } private double initW() { System.out.println("init w"); return 1.0; } }

解析: 输出顺序为:init c init a fruit init w init an apple

java代码的执行顺序:

先执行父类的静态变量和代码块,在执行子类的静态变量和代码块

接着执行父类的变量和构造方法里面的方法

接着执行子类的变量和构造方法里面的方法

9.下列程序的输出内容为(本题3分) public class Start { public static void main(String[] args) { Set set=new HashSet(); set.add(0); set.add(3); set.add(1); set.add(2); set.add(2); System.out.println(set); set.remove(2); System.out.println(set); } }

解析: 输出内容为:[0, 1, 2, 3] [0, 1, 3]

Set:一个无序(存入和取出顺序又可能不一致)容器,不可以存储重复元素,只允许存入一个null元素。set.remove(Object o) 方法用于从Set中删除特定元素。

存入和取出顺序又可能不一致的原因:

HashSet:哈希表里面存放的是哈希值,HashSet存储元素的顺序并不是按照存入时的顺序(和List显然不同) 是按照哈希值来存的所以取数据也是按照哈希值取得。

10. 若要求”查询选修了3门以上课程的学生的学生号“,正确的SQL语句是(本题3分) A. SELECT Sno FROM SC ORDER BY Sno WHERE COUNT (*) > 3 B. SELECT Sno FROM SC ORDER BY Sno HAVING COUNT (*) >= 3 C. SELECT Sno FROM SC GROUP BY Sno HAVING (COUNT (*) > 3) D. SELECT Sno FROM SC GROUP BY Sno WHERE COUNT (*) > 3

解析: 选 C .

order by的用法

使用order by,一般是用来,依照查询结果的某一列(或多列)属性,进行排序(升序:ASC;序:DESC;默认为升序)。

当排序列含空值时:

ASC:排序列为空值的元组最后显示。

DESC:排序列为空值的元组最先显示。

单一列属性排序

多列属性排序

选择多个列属性进行排序,排序的顺序是,从左到右,依次排序。如果前面列属性有些是一样的话,再按后面的列属性排序。(前提一定要满足前面的属性排序,因为在前面的优先级高)

group by 的用法

group by按照查询结果集中的某一列(或多列),进行分组,值相等的为一组。

细化集函数(count,sum,avg,max,min)的作用对象:

未对查询结果分组,集函数将作用于整个查询结果。

例子:求各个课程号及相应的选课人数:

SELECT cno,count(sno) from sc

对查询结果分组后,集函数将分别作用于每个组

SELECT cno,count(sno) from sc group by cno

GROUP BY子句的作用对象是查询的中间结果表

分组方法:按指定的一列或多列值分组,值相等的为一组。

使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性(比如:sno)和集函数(比如:count())。

select sno,count(cno) from sc group by sno

多个列属性进行分组

举例:

select cno,grade,count(cno) from sc group by cno,grade

使用HAVING短语筛选最终输出结果

只有满足HAVING短语指定条件的组才输出。

HAVING短语与WHERE子句的区别:作用对象不同。

WHERE子句作用于基表或视图,从中选择满足条件的元组。

HAVING短语作用于组,从中选择满足条件的组。

举例:

​ 查询选修了3门以上课程的学生学号:

select sno from sc group by sno having count(cno)>3

举例:

​ 查询选修了3门以上课程,且所有课程成绩都高于60分的学生学号及课程数

select sno , count(cno) from sc where grade > 60 group by sno having count(cno) > 3

小贴士:

group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛选。

having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)

where后的条件表达式里不允许使用聚合函数,而having可以

当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:

​ (1). 执行where xx对全表数据做筛选,返回第1个结果集。

​ (2). 针对第1个结果集使用group by分组,返回第2个结果集。

​ (3). 针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。

​ (4). 针对第3个结集执行having xx进行筛选,返回第4个结果集。

​ (5). 针对第4个结果集排序。

也就是说其实where不能和聚合函数一起使用,因为select语句执行在where之后。

11. 正确使用索引可以提高查询效率,productLine列已经添加索引,如下哪些表达式会使用索引?(本题3分) A. select * from products where productLine LIKE "%abc%" B. select * from products where substr(productLine,2)="abc" C. select * from products where productLine LIKE "%abc" D. select * from products where productLine LIKE "abc%"

解析:选 D。

使用索引情景 字段的数值有唯一性的限制,比如用户名 频繁作为 WHERE 查询条件的字段,尤其在数据表大的情况下 需要经常 GROUP BY 和 ORDER BY 的列 UPDATE、DELETE 的 WHERE 条件列,一般也需要创建索引 DISTINCT 字段需要创建索引 索引失效的情况 索引进行了表达式计算,则会失效 对索引使用函数,也会造成失效 在 WHERE 子句中,如果在 OR 前的条件列进行了索引,而在 OR 后的条件列没有进行索引,那么索引会失效 like 以通配符开头(%abc)会导致索引失效 索引列与 NULL 或者 NOT NULL 进行判断的时候也会失效。 12. 在SQL语句中,与表达式 name NOT IN (“wh1”,“wh2”) 功能相同的表达式是(本题3分) A. name !=“wh1” AND name != "wh2" B. name !=“wh1” OR name != "wh2" C. name =“wh1” AND name = "wh2" D. name =“wh1” OR name = "wh2"

解析: 选 A.

二、 多选题 13. 下列有关于public,protected,private的描述不正确的是(本题5分)

A. 如果不加上述三个描述词,只能被同一个包内的类访问。

B. 内部类的private类成员不能被外部类访问。

C. public类成员,能够被其他所有类访问。

D. protected类成员,只能被子类访问。

E. private类成员,不能被其他类访问,包括父类和子类。

解析:B、 D、E

B. 对于外部类来说 内部类相当于它的一个属性 内部类中的private也相当于它本身的private属性 所以根据类内可见原则 内部类private是可以被外部类访问的

E. 子类对象拥有父类中的所有属性和方法,则子类当然也继承了父类的私有属性和方法。但是它不能直接访问,之所以说不能直接访问,而不是不能访问,那是因为一旦父类提供了其私有成员的公共访问方法,那么子类就可以访问其私有成员

14. 下面选项中定义正确的有(本题5分) A. String[] strs = new String[3]{ "a","b","c"} B. String strs[] = new String[]{ "a","b","c"} C. String[] strs = { "a","b","c"} D. String[] strs = new String{ "a","b","c"} E. String strs[] ={ "a","b","c"}

解析: B、C、E

string数组的定义有三种:

String str[] = new String[10]; //创建一个长度为10的String 类型数组。 String str[] = { "a","b"}; String[] str = new String[]{ "a","b","c"}; 15.下列选项中定义或者描述正确的有(本题5分)

A. 类可以实现多个接口,也可以继承多个父类

B. byte类型的取值范围是-128~127

C. unsigned int =1

D. char类型的长度为2 个字节

解析:B、D

A. Java中一个类可以实现多个接口,但只能继承一个类。因为Java中的多继承有可能会造成二义性。

C. Java 中没有无符号整数的数据类型

16. 关于接口和抽象类,下面选项中说法正确的有(本题6分)

A. 接口支持多继承,一个接口可以继承多个接口

B. 接口中只能有public static final常量,抽象类中既可以有常量,也可以有变量

C. 接口不能实例化,抽象类可以实例化

D.包含抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法

解析:A、B、D

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。

接口和抽象类共同点:

都不能实例化,都位于继承树的顶端,用于被其他类实现和实现 都可以包含抽象方法,实现接口或者继承抽象类的普通子类都必须重写这些抽象方法

接口和抽象类不同点:

接口里只含有默认方法和抽象方法;抽象类中可以含有普通方法 接口不能定义静态方法;抽象类可以定义静态方法 接口只能定义静态常量,不能定义普通成员变量,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型;抽象类既可以定义普通成员变量,也可以定义静态成员变量 接口中不含构造器;抽象类中含有构造器 抽象方法可以有 public,protected,default 这些修饰符,接口默认修饰符为 public 一个类可以实现多个接口,但只能继承一个抽象类 17. 下列哪些函数能保证线程将离开运行状态?(本题6分) A. Thread.killThread() B. wait() C. sleep(1000) D. yield() E. aLiveThread.join() F. notify() G. notifyAll()

解析: B、C、D、E

线程离开运行状态的方法:

调用Thread.sleep():使当前线程睡眠至少多少毫秒(尽管它可能在指定的时间之前被中断) 调用Thread.yield():不能保障太多事情,尽管通常它会让当前运行线程回到可运行性状态,使得有相同优先级的线程有机会执行 调用join()方法:保证当前线程停止执行,直到调用join方法的线程完成为止。然而,如果调用join的线程没有存活,则当前线程不需要停止 线程的run()方法完成 在对象上调用wait()方法(不是在线程上调用) 线程不能在对象上获得锁定,它正试图运行该对象的方法代码。 线程调度程序可以决定将当前运行状态移动到可运行状态,以便让另一个线程获得运行机会,而不需要任何理由。 18. 下列有关 try 语句的描述,正确的有(本题6分)

A. try-with-resources 语句中申明的实现 AutoCloseable 接口的资源可以不手动关闭

B. 在一个有多个 catch 的 try-catch 语句中,异常的顺序没有特殊的要求。

C. try 语句中至少有一个 catch。

D. 使用 try-catch-finally 语句手动对资源关闭时,必须按照创建资源时相反的顺序进行关闭。

E. 在程序正常运行的情况下,try-catch-finally 语句最终都会执行 finally 中的内容

解析:A 、D、E

try-with-resources

从jdk1.7开始,Java 7增强了 try 语句的功能——它允许在 try 关键字后跟一对圆括号,圆括号可以声明,初始化一个或多个资源,此处的资源指得是那些必须在程序结束时必须关闭的资源(比如数据库连接,网络连接等),try 语句在该语句结束时自动关闭这些资源。这种称为 try-with-resources语句。 try (SqlSession sqlSession = sqlSessionFactory.openSession()) { //...... } 像这样的话,执行完 sqlsession 会自动关闭,不用我们在 finally 中关闭,也再也不用担心忘记关闭了。 那么为什么这样可以自动关闭资源呢?是不是所有的资源都可以这样关闭呢? 实际上只要这些资源实现类实现了 Closeable 或 AutoCloseable 接口,就可以自动关闭。比如 Sqlsession 它就是 extends Closeable, Closeable extends AutoCloseable。几乎所有的资源都可以用这种方式实现自动关闭资源,比如 OutputStream,BufferedReader,PrintStream,InputStream 等,都可以。据说到目前为止,只有JavaMail Transport 对象不能利用这种方式实现自动关闭。

注意:

try-with-resources 与 AutoCloseable 的 close 执行顺序 try-close-catch-finally 多资源用分号隔开,执行close的顺序为后声明的先执行;即按照创建资源时相反的顺序进行关闭 多资源 close 异常,不论前面 close 是否出现异常,后面的 close 一定会执行,异常抛出只能捕获最先执行 close 错误的异常。 B. 在写异常处理的时候,一定要把异常范围小的放在前面,范围大的放在后面,Exception这个异常的根类一定要放在最后一个catch里面,如果放在前面或者中间,任何异常都会和Exception匹配的,就会报已捕获到…异常的错误。故 B 错误 C. 在try块之后,我们可以使用 catch 块或 finally 块。 19. 下面哪些是 NIO 包特点(本题6分)

A. 文件锁定

B. 字符及编码

C. 内存映射技术

D. 阻塞I/O

解析: A、B、C

NIO 的特点:

内存映射 这个功能主要是为了提高大文件的读写速度而设计的 字符及编码 非阻塞I/O 文件锁定 文件锁的出现解决了很多Java应用程序和非Java程序之间共享文件数据的问题 20. 如下复合索引(a,b,c),实际生效的索引是?(本题5分)

A. (a)

B. (b,a)

C. (a,c,b)

D. (a,b)

解析: A、B、C、D

组合索引可以这样理解,比如(a,b,c),abc 都是排好序的,在任意一段 a 的下面 b 都是排好序的,任何一段 b 下面 c 都是排好序的;

组合索引的生效原则是 从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用,断点后面的索引没有起作用;

比如:

where a=3 and b=4 and c=5 -- 这种三个索引顺序使用中间没有断点,全部发挥作用; where a=3 and c=5 -- 这种情况下b就是断点,a发挥了效果,c没有效果 where b=3 and c=4 -- 这种情况下a就是断点,在a后面的索引都没有发挥作用,这种写法联合索引没有发挥任何效果; where b=4 and a=3 and c=5 -- 这个跟第一个一样(原因:mysql自动优化),全部发挥作用,abc只要 用上了就行,跟写的顺序无关 where a=3 and b>7 and c=3; -- b范围值,断点,阻塞了c的索引 -- a用到了,b也用到了,c没有用到,这个地方b是范围值,也算断点,只不过自身用到了索引 where a>4 and b=7 and c=9; --a用到了 b没有使用,c没有使用(a用了范围所以,相当于断点,之后的 b,c都没有用到索引) where a=3 order by b; -- a用到了索引,b在结果排序中也用到了索引的效果,a下面任意一段的b是 排好序的 where a=3 order by c; -- a用到了索引,但是这个地方c没有发挥排序效果,因为中间断点了,使 用explain 可以看到 filesort where b=3 order by a; -- b没有用到索引,排序中a也没有发挥索引效果 三、判断题(每题2分) 21. HashMap 和 TreeMap都允许 key 或 value 的值为 null。

解析: 错误

HashMap 支持 null 键和 null 值

TreeMap 不支持 null 键,但是支持 null 值

22. Hashtable 和 ConcurrentHashMap 都不允许 key 或 value 的值为 null。

解析:正确

ConcurrentHashMap 和 Hashtable 都是支持并发的,二者规定 key,value 均不能为 null,null的话,会抛出空指针异常。

23. 程序使用 Thread.sleep(0) 语句时,可以删除该行代码,程序运行效果时一样的。

解析: 错误

执行 Thread.sleep(0) 后,当前线程不一定会被唤醒,虽然休眠了0秒,但是执行 sleep 方法后,不仅会休眠,还会让 CPU 重新分配。因此,Thread.Sleep(0) 的作用,就是“触发操作系统立刻重新进行一次 CPU竞争”。竞争的结果也许是当前线程仍然获得 CPU 控制权,也许会换成别的线程获得 CPU 控制权。这也是我们在大循环里面经常会写一句 Thread.Sleep(0) ,因为这样就给了其他线程获得 CPU 控制权的权力,这样一些功能就不会假死在那里

24. wait() 方法必须用在同步代码块或方法中。

解析: 正确

Java强制我们的wait()/notify()调用必须要在一个同步块中,就是不想让我们在不经意间出现这种 lost wake up 问题。 不仅仅是这两个方法,包括 java.util.concurrent.locks.Condition 的await()/signal()也必须要在同步块中

25. sleep 和 wait 都会释放持有的锁资源。

解析: 错误

sleep,wait 调用后都会暂停当前线程并让出 cpu 的执行时间,但不同的是 sleep 不会释放当前持有的对象的锁资源,到时间后会继续执行,而 wait 会放弃所有锁并需要 notify/notifyAll 后重新获取到对象锁资源后才能继续执行。

26. 可以通过 for 循环遍历删除集合中的元素。

解析: 错误

for循环只能用来遍历集合,不可以在遍历的同时进行修改和删除

27. 变量定义 String 1abc =“abc”,是可以编译通过的。

解析: 错误

变量的命名要求符合标识符的语法要求: a. 变量名可以有字母、数字、_、$组成 b. 变量名不能以数字开头 c. Java中变量名的大小写是敏感的 d. 不能使用Java中的保留字作为变量名(保留字:Java中规定好的,一些有特殊含义的词) e. 中文可以作为变量名,但不提倡使用 f. 变量的命名要见名知意,命名需要遵循驼峰命令规则(如果变量的名字由多个单词组成,除第一个单词以外,其它单词的首字母大写,其余字母小写,尽量不要用拼音来命名变量)

28. volatile 关键字可以保证变量的可见性、有序性、原子性。

解析: 错误

volatile 不能保证变量的原子性。

29. static 修饰的方法不能调用非 static 修饰的方法或变量。

解析: 正确

30. 抽象类不可以使用 final 关键字来修饰。

解析: 正确

抽象类的就是要子类继承然后实现内部方法的。但是final修饰的类是不能再被继承和修改的。所以不能用final修饰。

注意:

以上答案 仅个人意见,如果有错误,欢迎指正,谢谢。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有