java基础研习

1、线程安全的解释
2、StringBuilder StringBuffer,String类 。
http://blog.csdn.net/clam_clam/article/details/6831345
String 内部数据结构 final char value[]; StringBuffer 内部数据结构 char value[];
2、对象的产生问题String s = new String(“xyz”);常量池中原来没有”xyz”,就是两个
StringBuilder(JDK1.5) 和StringBuffer(JDK1.0)是线程安全的问题。

3、内存泄露的问题,内存管理
http://henryyang.iteye.com/blog/1188328
预备知识:对象 和引用变量。才java中通过引用变量找到对象,如果这段内存没有引用变量则会被垃圾回收。(有向图的方式)
coal: 常见的内存泄露有两种情况 1、在c/c++中,在堆中分配的的内存,在没有将其释放掉的时候,就讲所有能访问这块内存的
方式都删除掉了,(如指针的赋值); 2、在内存对象明明已经不需要的时候,还仍然保留着这块内存和它的访问方式(引用)。(第二种情况在java中因为jc机制,得到了很好的解决)。
4:、常用的反爬虫策略:
user agent cookies 代理 降低访问频率 photojs

5:讲一讲多态:
属于运行期的状态。例如有重载和复写。
http://www.cnblogs.com/jack204/archive/2012/10/29/2745150.html
http://www.cnblogs.com/chenssy/p/3372798.html

6:讲讲多线程
http://www.ibm.com/developerworks/cn/education/java/j-threads/j-threads.html
1、什么是线程:
进程:在某种程度上相互隔离的、独立运行的程序
线程:轻量级进程。
http://www.ibm.com/developerworks/cn/java/j-concurrent/
7:线程同步中sleep()和wait()有什么区别?
1、 http://www.blogjava.net/baiyucheng/archive/2009/04/08/242140.html

 2、http://www.cnblogs.com/DreamSea/archive/2012/01/16/sleepandwaitdifferent.html 例子
            发出的对象不一样,一个是当前线程发出sleep,并且还占用这个锁。而对象当前对象发出的是wait,释放当前占用的锁。

8:讲一讲java的序列化是什么、其应用场景和优点。
http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html
1、来源:在jvm中可以创建一个对象,但是在jvm关闭之后对象也消失了。为了在jvm关闭之后也能够保存对象的状态(持久化),用来再jvm重启后回复对象的状态的操作。
2、应用场景:持久化,网络中对象的传输
3、使用:继承Seralizable接口,中间还有一些排除对象成员序列化的方法。ObjectInputStream 和 ObjectOutputStream 进行对象的读写
http://www.ibm.com/developerworks/cn/java/j-lo-serial/加深理解
4:序列化的ID问题
9:Mysql用到什么水平。当数据量很大且插入操作很频繁时该怎么处理(空白期,Mysql了解的并不多)
http://www.jb51.net/article/27315.htm
插入操作很频繁怎么处理?库表散列方法
1)一般数据库的底层实现是采用B树,还有部分是采用散列表的结构。(B树是如何建造的)
2)索引:索引是对数据库表中一列或者多列的值进行排序的一种结构。当然索引只是对于查询的情况有很大的优化,但是会降低插入 删除 更新的速度。

        3)对于只是插入的速度:理论上来来讲一条语句插入的工作有 数据库的链接。
            extention:B树的建构

10:Java栈和队列的内部简单原理
怎么模拟一个栈,怎么模拟一个队列
http://www.cnblogs.com/yangecnu/p/introduction-stack-and-queue.html
http://www.cnblogs.com/oumyye/p/4199951.html
11:Java的List中存放的是对象,如何对对象进行排序

12:列举出一些Java中的一些数据结构
http://blog.csdn.net/zhangerqing/article/details/8122075
http://blog.csdn.net/softwave/article/details/4166598
ArrayList、LinkedList、HashMap、TreeMap、LinkedHashMap列了一遍,面试官还给补充了queue和vector。及其底层的数据结构
底层数据结构,以及要注意的事项
13:Jvm的原理
http://segmentfault.com/a/1190000002579346
http://blog.csdn.net/cutesource/article/details/5904501
如果是谈谈jvm的话,总览的谈:java和c++最重要的区别是java的平台无缘性,而这里jvm是java的平台。编译之后的java指令并不在硬件系统中直接执行,而是
在由jvm执行。
再深入一步就是谈谈jvm的架构组成:
1、类装载子系统
2、执行引擎
3、运行时数据区

然后再根据架构的各个模块进行系统的说明:
类加载子系统
JVM的类加载是通过ClassLoader及其子类来完成的,类的层次关系和加载顺序可以由下图来描述:

1)Bootstrap ClassLoader
负责加载 JAVAHOMEjre/lib/rt.jarclassC++ClassLoader2ExtensionClassLoaderjavajar JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包
3)App ClassLoader
负责记载classpath中指定的jar包及目录中class
4)Custom ClassLoader
属于应用程序根据自身需要自定义的ClassLoader,如tomcat、jboss都会根据j2ee规范自行实现ClassLoader
加载过程中会先检查类是否被已加载,检查顺序是自底向上,从Custom ClassLoader到BootStrap ClassLoader逐层检查,只要某个classloader已加载就视为已加载此类,保证此类只所有ClassLoader加载一次。而加载的顺序是自顶向下,也就是由上层来逐层尝试加载此类。

14:maven+springMvc+mybatis+git框架搭建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值