Java笔试面试题整理第四波
转载至:http://blog.csdn.net/shakespeare001/article/details/51274685
作者:山代王(开心阳)
本系列整理Java相关的笔试面试知识点,其他几篇文章如下:
1、HashMap、HashTable、ConcurrentHashMap的区别
- public V put(K key, V value) {
- if (table == EMPTY_TABLE) {
- inflateTable(threshold);
- }
- if (key == null)
- return putForNullKey(value); //说明key和value值都是可以为null
- int hash = hash(key);
- int i = indexFor(hash, table.length);
- for (Entry<K,V> e = table[i]; e != null; e = e.next) {
- Object k;
- if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
- V oldValue = e.value;
- e.value = value;
- e.recordAccess(this);
- return oldValue;
- }
- }
- modCount++;
- addEntry(hash, key, value, i);
- return null;
- }
public V put(K key, V value) {
if (table == EMPTY_TABLE) {
inflateTable(threshold);
}
if (key == null)
return putForNullKey(value); //说明key和value值都是可以为null
int hash = hash(key);
int i = indexFor(hash, table.length);
for (Entry<K,V> e = table[i]; e != null; e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
V oldValue = e.value;
e.value = value;
e.recordAccess(this);
return oldValue;
}
} modCount++;
addEntry(hash, key, value, i);
return null;
}
- public synchronized V put(K key, V value) {
- // Make sure the value is not null
- if (value == null) { //当value==null的时候,会抛出异常
- throw new NullPointerException();
- }
- // Makes sure the key is not already in the hashtable.
- Entry tab[] = table;
- int hash = hash(key);
- int index = (hash & 0x7FFFFFFF) % tab.length;
- for (Entry<K,V> e = tab[index] ; e != null ; e = e.next) {
- if ((e.hash == hash) && e.key.equals(key)) {
- V old = e.value;
- e.value = value;
- return old;
- }
- }
- modCount++;
- if (count >= threshold) {
- // Rehash the table if the threshold is exceeded
- rehash();
- tab = table;
- hash = hash(key);
- index = (hash & 0x7FFFFFFF) % tab.length;
- }
- // Creates the new entry.
- Entry<K,V> e = tab[index];
- tab[index] = new Entry<>(hash, key, value, e);
- count++;
- return null;
- }
public synchronized V put(K key, V value) {
// Make sure the value is not null
if (value == null) { //当value==null的时候,会抛出异常
throw new NullPointerException();
} // Makes sure the key is not already in the hashtable.
Entry tab[] = table;
int hash = hash(key);
int index = (hash & 0x7FFFFFFF) % tab.length;
for (Entry<K,V> e = tab[index] ; e != null ; e = e.next) {
if ((e.hash == hash) && e.key.equals(key)) {
V old = e.value;
e.value = value;
return old;
}
} modCount++;
if (count >= threshold) {
// Rehash the table if the threshold is exceeded
rehash(); tab = table;
hash = hash(key);
index = (hash & 0x7FFFFFFF) % tab.length;
} // Creates the new entry.
Entry<K,V> e = tab[index];
tab[index] = new Entry<>(hash, key, value, e);
count++;
return null;
}
- HashMap<String, Integer> map = new HashMap<String, Integer>(20);
HashMap<String, Integer> map = new HashMap<String, Integer>(20);
2、TreeMap、HashMap、LinkedHashMap的区别
- Map<String, Integer> map = new HashMap<String, Integer>(20);
- for(Map.Entry<String, Integer> entry : map.entrySet()){ //直接遍历出Entry
- System.out.println(”key–>”+entry.getKey()+“,value–>”+m.get(entry.getValue()));
- }
Map<String, Integer> map = new HashMap<String, Integer>(20);
for(Map.Entry<String, Integer> entry : map.entrySet()){ //直接遍历出Entry
System.out.println("key-->"+entry.getKey()+",value-->"+m.get(entry.getValue()));
}
- Map<String, Integer> map = new HashMap<String, Integer>(20);
- Iterator<String> keySet = map.keySet().iterator(); //遍历Hash表中的key值集合,通过key获取value
- while(keySet .hasNext()){
- Object key = keySet .next();
- System.out.println(”key–>”+key+“,value–>”+m.get(key));
- }
Map<String, Integer> map = new HashMap<String, Integer>(20);
Iterator<String> keySet = map.keySet().iterator(); //遍历Hash表中的key值集合,通过key获取value
while(keySet .hasNext()){
Object key = keySet .next();
System.out.println("key-->"+key+",value-->"+m.get(key));
}
3、Collection包结构,与Collections的区别。
如,Collections.max(Collection coll); 取coll中最大的元素。
Collections.sort(List list); 对list中元素排序
4、OOM你遇到过哪些情况,SOF你遇到过哪些情况
异常信息:Java.lang.OutOfMemoryError:PermGen space
方法区溢出也是一种常见的内存溢出异常,一个类如果要被垃圾收集器回收,判定条件是很苛刻的。在经常动态生成大量Class的应用中,要特别注意这点。
if
(bitmapObject.isRecycled()==
false
)
//如果没有回收
bitmapObject.recycle();
//在程序onCreate时就可以调用 即可
private
final
static
float TARGET_HEAP_UTILIZATION =
0
.75f;
private
final
static
int
CWJ_HEAP_SIZE =
6
*
1024
*
1024
;
//设置最小heap内存为6MB大小
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);
如果缓存中不存在,那么启动一个task去加载(可能从文件来,也可能从网络)。
5、Java面向对象的三个特征与含义,多态的实现方式
6、interface与abstract类的区别
7、static class 与non static class的区别
- public class OutClass {
- private String mName = “lly”;
- static int mAge = 12;
- class InnerClass{
- String name;
- int age;
- private void getName(){
- name = mName;
- age = mAge;
- System.out.println(”name=”+name+“,age=”+age);
- }
- }
- public static void main(String[] args) {
- //第一种初始化内部类方法
- OutClass.InnerClass innerClass = new OutClass().new InnerClass();
- innerClass.getName();
- //第二种初始化内部类方法
- OutClass out = new OutClass();
- InnerClass in = out.new InnerClass();
- in.getName();
- }
- }
public class OutClass {
private String mName = "lly";
static int mAge = 12; class InnerClass{
String name;
int age;
private void getName(){
name = mName;
age = mAge;
System.out.println("name="+name+",age="+age);
}
} public static void main(String[] args) {
//第一种初始化内部类方法
OutClass.InnerClass innerClass = new OutClass().new InnerClass();
innerClass.getName();
//第二种初始化内部类方法
OutClass out = new OutClass();
InnerClass in = out.new InnerClass();
in.getName();
}
}
- public class OutClass {
- private String mName = “lly”;
- static int mAge = 12;
- static class StaticClass{
- String name = ”lly2”;
- int age;
- private void getName(){
- // name = mName; //不能引用外部类的非静态成员变量
- age = mAge;
- System.out.println(”name=”+name+“,age=”+age);
- }
- }
- public static void main(String[] args) {
- //第一种初始化静态内部类方法
- OutClass.StaticClass staticClass = new OutClass.StaticClass();
- staticClass.getName();
- //或者直接使用静态内部类初始化
- StaticClass staticClass2 = new StaticClass();
- staticClass2.getName();
- }
- }
public class OutClass {
private String mName = "lly";
static int mAge = 12; static class StaticClass{
String name = "lly2";
int age;
private void getName(){
// name = mName; //不能引用外部类的非静态成员变量
age = mAge;
System.out.println("name="+name+",age="+age);
}
} public static void main(String[] args) {
//第一种初始化静态内部类方法
OutClass.StaticClass staticClass = new OutClass.StaticClass();
staticClass.getName();
//或者直接使用静态内部类初始化
StaticClass staticClass2 = new StaticClass();
staticClass2.getName();
}
}
输出:name=lly2,age=12
- textView.setOnClickListener(new View.OnClickListener(){ //OnClickListener为一个接口interface
- public void onClick(View v){
- …
- }
- });
textView.setOnClickListener(new View.OnClickListener(){ //OnClickListener为一个接口interface
public void onClick(View v){
...
}
});
- public abstract class Animal {
- public abstract void getColor();
- }
- public class Dog{
- public static void main(String[] args) {
- Animal dog = new Animal() {
- @Override
- public void getColor() {
- System.out.println(”黑色”);
- }
- };
- dog.getColor();
- }
- }
public abstract class Animal {
public abstract void getColor();
} public class Dog{
public static void main(String[] args) {
Animal dog = new Animal() {
@Override
public void getColor() {
System.out.println("黑色");
}
};
dog.getColor();
}
}
Java笔试面试题整理第四波的更多相关文章
- Java笔试面试题整理第八波
转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第六波(修正版)
转载至:http://blog.csdn.net/shakespeare001/article/details/51330745 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第五波
转载至:http://blog.csdn.net/shakespeare001/article/details/51321498 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第七波
转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 1.super的作用 在Java中su ...
- Java笔试面试题整理第三波
转载至:http://blog.csdn.net/shakespeare001/article/details/51247785 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第二波
转载至:http://blog.csdn.net/shakespeare001/article/details/51200163 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第一波
转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇] 隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...
- Java笔试面试题001
Java笔试面试题之中的一个 1.Struts1中actionform和action属于MVC哪一层,为什么? 解答:actionform和action属于MVC的Model层,Action用来处理业 ...
随机推荐
- sql存储过程编程带事务
CREATE PROCEDURE [dbo].[存储过程名字] @错误参数_ErrorCode int output, @参数1 int, @参数2 varchar(20), @参数3 varchar ...
- 说一说本人对linux系统学习的方法和经验
摘要: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下面是一段百度中的介绍: 相信大伙都听说过linux系统,然而对于这个系统,总使让新手感觉茫然,诺达的系统.下 ...
- python全栈开发笔记----基本数据类型---列表List
#list 是 类 ,列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但 ...
- 【Java集合系列二】LinkedList解析
一.简介 1.LinkedList继承关系 2.LinkedList底层实现 LinkedList使用双向链表存储数据,所以没有默认的容量,也不会有扩容一说.只有两个指针,永远指向链表的两端:firs ...
- linux远程管理常用命令
目标 关机/重启 shutdown 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh scp 01. 关机/重启 序号 命令 对应英文 作用 01 shutdown 选项 时 ...
- python: super原理
super() 的入门使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如: ...
- AndroidStudio连不上Android设备真机
AndroidStudio连不上Android设备真机 刚好遇到这个问题,查阅了很多资料,看到有人分享了引起该问题的几个原因,我总结了一下: 1.手机设置问题.开USB调试 方法:手机设置-开发人员调 ...
- Master-Worker设计模式介绍
Master-Worker模式是常用的并行设计模式.核心思想是,系统由两个角色组成,Master和Worker,Master负责接收和分配任务,Worker负责处理子任务.任务处理过程中,Master ...
- Shell 变量替换及测试
声明:$ 后面跟linux可执行命令 一.变量替换 语法 说明 ${变量名#匹配规则} 从变量的开头进行规则匹配,将符合最 ...
- ipa 注入 dylib
前些日子再github找到了一个内存修改器 DLGMemor 免越狱在app内植入修改器,感觉很不错,就尝试去看看是否可行. 用到的工具: Xcode 10. optool 首先要做的,安装 opt ...