java基础笔记.docx

上传人:b****1 文档编号:2075793 上传时间:2022-10-26 格式:DOCX 页数:70 大小:541.55KB
下载 相关 举报
java基础笔记.docx_第1页
第1页 / 共70页
java基础笔记.docx_第2页
第2页 / 共70页
java基础笔记.docx_第3页
第3页 / 共70页
java基础笔记.docx_第4页
第4页 / 共70页
java基础笔记.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

java基础笔记.docx

《java基础笔记.docx》由会员分享,可在线阅读,更多相关《java基础笔记.docx(70页珍藏版)》请在冰豆网上搜索。

java基础笔记.docx

java基础笔记

序言

J2SE基础

1.九种基本数据类型的大小,以及他们的封装类。

2.Switch能否用string做参数?

3.equals与==的区别。

4.Object有哪些公用方法?

5.Java的四种引用,强弱软虚,用到的场景。

6.Hashcode的作用。

7.ArrayList、LinkedList、Vector的区别。

8.String、StringBuffer与StringBuilder的区别。

9.Map、Set、List、Queue、Stack的特点与用法。

10.HashMap和HashTable的区别。

11.HashMap和ConcurrentHashMap的区别,HashMap的底层源码。

12.TreeMap、HashMap、LindedHashMap的区别。

13.Collection包结构,与Collections的区别。

14.try catch finally,try里有return,finally还执行么?

15.Excption与Error包结构。

OOM你遇到过哪些情况,SOF你遇到过哪些情况。

16.Java面向对象的三个特征与含义。

17.Override和Overload的含义去区别。

18.Interface与abstract类的区别。

19.Static class 与non static class的区别。

20.java多态的实现原理。

21.实现多线程的两种方法:

Thread与Runable。

22.线程同步的方法:

sychronized、lock、reentrantLock等。

23.锁的等级:

方法锁、对象锁、类锁。

24.写出生产者消费者模式。

25.ThreadLocal的设计理念与作用。

26.ThreadPool用法与优势。

27.Concurrent包里的其他东西:

ArrayBlockingQueue、CountDownLatch等等。

28.wait()和sleep()的区别。

29.foreach与正常for循环效率对比。

30.Java IO与NIO。

31.反射的作用于原理。

32.泛型常用特点,List能否转为List

33.解析XML的几种方式的原理与特点:

DOM、SAX、PULL。

34.Java与C++对比。

35.Java1.7与1.8新特性。

36.设计模式:

单例、工厂、适配器、责任链、观察者等等。

37.JNI的使用。

Java里有很多很杂的东西,有时候需要你阅读源码,大多数可能书里面讲的不是太清楚,需要你在网上寻找答案。

推荐书籍:

《java核心技术卷I》《Thinking in java》《java并发编程》《effictive java》《大话设计模式》

 

JVM

1.内存模型以及分区,需要详细到每个区放什么。

2.堆里面的分区:

Eden,survival from to,老年代,各自的特点。

3.对象创建方法,对象的内存分配,对象的访问定位。

4.GC的两种判定方法:

引用计数与引用链。

5.GC的三种收集方法:

标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?

6.GC收集器有哪些?

CMS收集器与G1收集器的特点。

7.Minor GC与Full GC分别在什么时候发生?

8.几种常用的内存调试工具:

jmap、jstack、jconsole。

9.类加载的五个过程:

加载、验证、准备、解析、初始化。

10.双亲委派模型:

Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。

11.分派:

静态分派与动态分派。

JVM过去过来就问了这么些问题,没怎么变,内存模型和GC算法这块问得比较多,可以在网上多找几篇博客来看看。

推荐书籍:

《深入理解java虚拟机》

 

操作系统

1.进程和线程的区别。

2.死锁的必要条件,怎么处理死锁。

3.Window内存管理方式:

段存储,页存储,段页存储。

4.进程的几种状态。

5.IPC几种通信方式。

6.什么是虚拟内存。

7.虚拟地址、逻辑地址、线性地址、物理地址的区别。

因为是做android的这一块问得比较少一点,还有可能上我简历上没有写操作系统的原因。

推荐书籍:

《深入理解现代操作系统》

 

TCP/IP

1.OSI与TCP/IP各层的结构与功能,都有哪些协议。

2.TCP与UDP的区别。

3.TCP报文结构。

4.TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用。

5.TCP拥塞控制。

6.TCP滑动窗口与回退N针协议。

7.Http的报文结构。

8.Http的状态码含义。

9.Http request的几种类型。

10.Http1.1和Http1.0的区别

11.Http怎么处理长连接。

12.Cookie与Session的作用于原理。

13.电脑上访问一个网页,整个过程是怎么样的:

DNS、HTTP、TCP、OSPF、IP、ARP。

14.Ping的整个过程。

ICMP报文是什么。

15.C/S模式下使用socket通信,几个关键函数。

16.IP地址分类。

17.路由器与交换机区别。

网络其实大体分为两块,一个TCP协议,一个HTTP协议,只要把这两块以及相关协议搞清楚,一般问题不大。

推荐书籍:

《TCP/IP协议族》

 

数据结构与算法

1.链表与数组。

2.队列和栈,出栈与入栈。

3.链表的删除、插入、反向。

4.字符串操作。

5.Hash表的hash函数,冲突解决方法有哪些。

6.各种排序:

冒泡、选择、插入、希尔、归并、快排、堆排、桶排、基数的原理、平均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。

7.快排的partition函数与归并的Merge函数。

8.对冒泡与快排的改进。

9.二分查找,与变种二分查找。

10.二叉树、B+树、AVL树、红黑树、哈夫曼树。

11.二叉树的前中后续遍历:

递归与非递归写法,层序遍历算法。

12.图的BFS与DFS算法,最小生成树prim算法与最短路径Dijkstra算法。

13.KMP算法。

14.排列组合问题。

15.动态规划、贪心算法、分治算法。

(一般不会问到)

16. 大数据处理:

类似10亿条数据找出最大的1000个数.........等等

算法的话其实是个重点,因为最后都是要你写代码,所以算法还是需要花不少时间准备,这里有太多算法题,写不全,我的建议是没事多在OJ上刷刷题(牛客网、leetcode等),剑指offer上的算法要能理解并自己写出来,编程之美也推荐看一看。

推荐书籍:

《大话数据结构》《剑指offer》《编程之美》

J2SE基础

1.九种基本数据类型的大小,以及他们的封装类。

java提供了一组基本数据类型,包括

boolean,byte,char,short,int,long,float,double,void.

同时,java也提供了这些类型的封装类,分别为

Boolean,Byte,Character,Short,Integer,Long,Float,Double,Void

类型字节表示范围包装类

byte(字节型)1-128~127Byte

short(短整型)2-32768~32767Short

int(整型)4-48~47Integer

long(长整型)8-808~807Long

float(浮点型)4-3.4E38~3.4E38Float

double(双精度型)8-1.7E308~1.7E308Double

char(字符型)2从字符型对应的整型数来划分,其表示范围是0~65535Charater

booealn(布尔型)1true或falseBoolean

2.Switch能否用string做参数?

在Java7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型。

在Java7中,String支持被加上了。

3.equals与==的区别。

“==”比较的是值【变量(栈)内存中存放的对象的(堆)内存地址】

equal用于比较两个对象的值是否相同【不是比地址】

【特别注意】Object类中的equals方法和“==”是一样的,没有区别,而String类,Integer类等等一些类,是重写了equals方法,

才使得equals和“==不同”,所以,当自己创建类时,自动继承了Object的equals方法,要想实现不同的等于比较,必须重写equals方法。

"=="比"equal"运行速度快,因为"=="只是比较引用.

4.Object有哪些公用方法?

Object是所有类的父类,任何类都默认继承Object。

Object类到底实现了哪些方法?

(1)clone方法

保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。

主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就需要在类中复写clone方法。

(2)getClass方法

final方法,获得运行时类型。

(3)toString方法

该方法用得比较多,一般子类都有覆盖。

(4)finalize方法

该方法用于释放资源。

因为无法确定该方法什么时候被调用,很少使用。

(5)equals方法

该方法是非常重要的一个方法。

一般equals和==是不一样的,但是在Object中两者是一样的。

子类一般都要重写这个方法。

(6)hashCode方法

该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。

这个方法在一些具有哈希功能的Collection中用到。

一般必须满足obj1.equals(obj2)==true。

可以推出obj1.hash-Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals。

不过为了提高效率,应该尽量使上面两个条件接近等价。

如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去。

(7)wait方法

wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。

wait()方法一直等待,直到获得锁或者被中断。

wait(longtimeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。

(7.1)其他线程调用了该对象的notify方法。

(7.2)其他线程调用了该对象的notifyAll方法。

(7.3)其他线程调用了interrupt中断该线程。

(7.4)时间间隔到了。

此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。

(8)notify方法

该方法唤醒在该对象上等待的某个线程。

(9)notifyAll方法

该方法唤醒在该对象上等待的所有线程。

5.Java的四种引用,强弱软虚,用到的场景。

(1)强引用

以前我们使用的大部分

展开阅读全文
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1