牛客网java基础知识
1.java把表示范围大的数转换为表示范围小的数,需要强制类型转换。
Java中,数据类型分为基本数据类型(或叫做原生类、内置类型)和引用数据类型。
原生类型为基本数据类型
int和布尔值可以相互转换吗???不可以,这里是Java,不是C,boolean不能和其他类型互换。
2.另外,JVM运行程序主要的时间耗费是在创建对象和回收对象上。
String对String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,而不是StringBuffer;StringBuffer每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。
正确答案: C 你的答案: C (正确)
StringBuffer是线程安全的
StringBuilder是非线程安全的
StringBuffer对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象。
效率比较String<StringBuffer<StringBuilder,但是在 String S1 = “This is only a” + “ simple” + “ test”时,String效率最高。 4.
正确答案: D 你的答案: D (正确)
他们都实现了Map接口。
HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。
我贴一下关于两者相关的源码供大伙参考一下: //HashMap的源码
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
-----------------------------------
//Hashtable的源码
public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, 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 null
if (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.
正确答案: A C 你的答案: A B C (错误)
异常的继承结构:基类为 Throwable,Error 和 Exception 继承 Throwable,RuntimeException 和 IOException 等继承 Exception
非 RuntimeException 一般是外部错误,其必须被 try{}catch 语句块所捕获
Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉
RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须 被 try{}catch 语句块所捕获
都是Throwable的子类:
1.Exception(异常) :是程序本身可以处理的异常。
3.检查异常(编译器要求必须处置的异常) : 除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
牛客网java基础知识的更多相关文章
- 从一道题看线程安全--牛客网Java基础题
从一道题看线程安全 Java中的线程安全是什么: 就是线程同步的意思,就是当一个程序对一个线程安全的方法或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的 ...
- 牛客网java基础题分类
http://www.cnblogs.com/tptptptp/p/5904075.html
- 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap
不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...
- 牛客网 Java 工程师能力评估 20 题 - 详解
牛客网 Java 工程师能力评估 20 题 - 详解 不知在看博客的你是否知道 牛客网,不知道就太落后了,分享给你 : 牛客网 此 20 题,绝对不只是 20 题! 免责声明:本博客为学习笔记,如有侵 ...
- 牛客网Java刷题知识点之HashMap的实现原理、HashMap的存储结构、HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 Java全栈大联盟 ...
- 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现
不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import ja ...
- 牛客网Java刷题知识点之为什么HashMap和HashSet区别
不多说,直接上干货! HashMap 和 HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的 ...
随机推荐
- Linux打补丁的一些问题
linuxpatchlinux内核文档commandheader类unix操作系统有一个很有趣的特性就是源代码级的补丁包.在windows上我们打补丁都是运行一个可执行的程序,然后就可以把补丁打完了, ...
- 2018-2019-2 网络对抗技术 20165301 Exp6 信息搜集与漏洞扫描
2018-2019-2 网络对抗技术 20165301 Exp6 信息搜集与漏洞扫描 1.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 (2)DNS ...
- CCTF部分赛题分析
这次算是跟着师傅们全程打完了CCTF的线上赛,一些强队的WriteUp也放了出来.这篇文章主要是想跟着大牛的思路把那些题重新再过一遍. PWN3 这个是格式化字符串漏洞的题.printf的格式化串直接 ...
- Python 3.6安装教程
0x01 安装Python 1.1 说明 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. 本教程安装的是python-3.6.1-amd64版本. Python官 ...
- appium--【Mac】提示报错“could not launch WebDriverAgentRunner..........."
运行appium WebDriverAgentLib和WebDriverAgentRunner都编译到真机运行成功,未在桌面生成一个没图标的WebDriverAgentRunner 连接并选择自己 ...
- day4正则表达式
语法: 正则表达式是处理字符串的函数,我们在Excel函数中也有很多这样的公式,因为学过一些Excel,所以看一下有什么不同的方法. import re #导入re模块,处理正则表达式的模 ...
- [实战]MVC5+EF6+MySql企业网盘实战(11)——新建文件夹2
写在前面 上篇文章实现了创建文件夹的功能,这里面将实现单击文件夹,加载列表的功能. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网 ...
- pyqt5最简单操作数据库
要先安一个包才能使用QtSql通过新立得安装 import PyQt5.QtSql as sql db=sql.QSqlDatabase.addDatabase('QMYSQL') db.setDat ...
- Failed to lookup view 'error'
这个问题在npm run dev进行本地开发时,没有问题.但是在npm run build后,生产服务器上部署时出现问题. 我对本地的路径排查,发现写的没有问题 所以我去了生产的文件夹看路径 我去了s ...
- 第七章:Mapping插件
Mapping插件 Knockout设计成允许你使用任何JavaScript对象作为view model.必须view model的一些属性是observable的,你可以使用KO绑定他们到你的UI元 ...