博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客网java基础知识
阅读量:6856 次
发布时间:2019-06-26

本文共 4064 字,大约阅读时间需要 13 分钟。

1.java把表示范围大的数转换为表示范围小的数,需要强制类型转换。

Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。

原生类型为基本数据类型
int和布尔值可以相互转换吗???不可以,这里是Java,不是C,

2.另外,JVM运行程序主要的时间耗费是在创建对象和回收对象上。

String对String  类型进行改变的时候其实都等同于生成了一个新的  String  对象,然后将指针指向新的  String  对象,而不是StringBuffer;StringBuffer每次结果都会对  StringBuffer  对象本身进行操作,而不是生成新的对象,再改变对象引用。

 

 String S1 = “This is only a” + “ simple” + “ test” ;

 

在编译的时候S1就是常量了可以理解为  String S1 = “This is only a simple test” ; ,不存在运行时对字符串的处理,所以效率最高。

 

 

java中,StringBuilder和StringBuffer的区别,下面说法错误的是?

 

正确答案: C   你的答案: C (正确)

StringBuffer是线程安全的
StringBuilder是非线程安全的
StringBuffer对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象。
效率比较String
HashMap和HashTable的描述,错误的是?

正确答案: D   你的答案: D (正确)

他们都实现了Map接口。
HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。
我贴一下关于两者相关的源码供大伙参考一下://HashMap的源码public class HashMap
extends AbstractMap
implements Map
, Cloneable, Serializable-----------------------------------//Hashtable的源码public class Hashtable
extends Dictionary
implements Map
, Cloneable, java.io.Serializable----------------------------------很明显,都实现了Map接口,所以,A正确----------------------------------------------------------------------------------------------public V put(K key, V value) //HashMap的put方法,没有同步 public synchronized V put(K key, V value) //Hashtable的put方法//当然,Hashtable的其他方法,如get,size,remove等方法,//都加了synchronized关键词同步操作------------------------------------------------------------------------------------------------//Hashtable的put方法有以下语句块,大伙看了都知道// Make sure the value is not nullif (value == null) { throw new NullPointerException();} //那么,我们再来看下HashMap的put方法中,有如下语句//调用某个方法直接把key为null,值为value的键值对插入进去。if (key == null) return putForNullKey(value);--------------------------------------------------------------------------------------//以下是Hashtable的方法public synchronized boolean contains(Object value)public synchronized boolean containsKey(Object key)public boolean containsValue(Object value) //以下是HashMap中的方法,注意,没有contains方法,所以,D错误public boolean containsKey(Object key)public boolean containsValue(Object value)

HashMap 把 Hashtable 的 contains 方法去掉了 ,改成 containsvalue 和 containsKey 。因为 contains 方法容易让人引起误解。

 

10.

执行以下程序后的输出结果是()
1
2
3
4
5
6
7
8
9
10
11
public
class
Test {
public
static
void
main(String[] args) {
    
StringBuffer a = 
new
StringBuffer(
"A"
); 
    
StringBuffer b = 
new
StringBuffer(
"B"
); 
    
operator(a, b); 
    
System.out.println(a + 
","
+ b); 
public
static
void
operator(StringBuffer x, StringBuffer y) { 
    
x.append(y); y = x; 
}
}

正确答案: D   你的答案: D (正确)

A,A
A,B
B,B
AB,B 答:a,b是对象的引用,指向堆内存,将a,b两个引用传给x,y,执行x.append(y),改变了x引用指向的堆内存的存储内容,变为AB, y = x,表示引用y,指向引用x指向的存储区域,没有改变引用b,指向的存储空间的内容。 11.ConcurrentHashMap使用segment来分段和管理锁,segment继承自ReentrantLock,因此ConcurrentHashMap使用ReentrantLock来保证线程安全。 12.
以下代码在编译和运行过程中会出现什么情况
1
2
3
4
5
6
7
8
9
10
public
class
TestDemo{
    
private
int
count;
    
public
static
void
main(String[] args) {
        
TestDemo test=
new
TestDemo(
88
);
        
System.out.println(test.count);
    
}
     
TestDemo(
int
a) {
         
count=a;
    
}
}

 

正确答案: A   你的答案: B (错误)

编译运行通过,输出结果是88
编译时错误,count变量定义的是私有变量
编译时错误,System.out.println方法被调用时test没有被初始化
编译和执行时没有输出结果 private是私有变量,只能用于当前类中,题目中的main方法也位于当前类,所以可以正确输出 20.
下面有关 JAVA 异常类的描述,说法正确的有()

正确答案: A C   你的答案: A B C (错误)

异常的继承结构:基类为 Throwable,Error 和 Exception 继承 Throwable,RuntimeException 和 IOException 等继承 Exception
非 RuntimeException 一般是外部错误,其必须被 try{}catch 语句块所捕获
Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉
RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须 被 try{}catch 语句块所捕获
ABC
 
都是Throwable的子类: 
1.Exception(异常) :是程序本身可以处理的异常。 
2.Error(错误): 是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需要程序处理。

3.检查异常(编译器要求必须处置的异常) :  除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。

4.非检查异常(编译器不要求处置的异常): 包括运行时异常(RuntimeException与其子类)和错误(Error)。

 

转载地址:http://yoyyl.baihongyu.com/

你可能感兴趣的文章
《Maven官方文档》POM文件(二)
查看>>
Apache Storm 官方文档 —— 配置开发环境
查看>>
企业IT架构转型之道:阿里巴巴中台战略思想与架构实战. 2.5 为真正发挥大数据威力做好储备...
查看>>
如何通过 MySQL 的二进制日志恢复数据库数据
查看>>
【科普】数字货币的基石--区块链
查看>>
深入实践Spring Boot1.2.1 使用Maven新建项目
查看>>
Request、Request.Params、Request.QueryString、Request.form的区别
查看>>
《Hadoop MapReduce性能优化》一导读
查看>>
Spark修炼之道(基础篇)——Linux大数据开发基础:第四节:Linux文件系统(二)...
查看>>
【Spark Summit East 2017】使用Spark进行可伸缩的元基因组分析
查看>>
一张图清晰追溯数据库的发展历程(1962-2016)
查看>>
【D3.js 学习总结】10、D3布局-力学图
查看>>
java 内部类(inner class)详解
查看>>
G1 收集器
查看>>
C语言及程序设计进阶例程-9 预处理之文件包含
查看>>
项目优化总结
查看>>
浏览器加载 CommonJS 模块的原理与实现
查看>>
C++11新特性
查看>>
C语言笔试题
查看>>
改进了一下这个游戏的输出及思路,是不是好玩多了??:)
查看>>