hashcode、equals
解决多线程死锁、reentrantLock、synchronized关键字优劣
tomcat中多线程并发接收http请求的代码
直接在终端怎么去发一个HTTP请求
java中的类加载器,tomcat为什么要自定义类加载器
java反射的应用
tomcat内部是如何找到相应的servlet然后执行代码的
去除数组中重复元素的算法
Spring或者数据库的事物隔离级别和传播特性是怎样的
final都能修饰什么,起到什么作用
statement和prepareStatement有什么区别
HashMap和HashTable主要的区别是什么
LinkedList和ArrayList的区别是啥
HashMap底层的数据结构是怎样的
数据库的索引是如何实现的,主键索引和联合索引数据结构有什么区别
Servlet的原理是什么,是否是线程安全的
JDBC的目的是什么,是一种接口还是一种实现(JDBC本身是一种标准,每种数据库的JDBC是一种实现)有什么主要的技术
用过哪种连接池,为什么要用连接池
用过哪些缓存,用于什么场景,redis怎么实现分布式锁
写一个单例模式
斐波那契数列的递归与遍历实现
给定2,3,5面值的硬币若干,给出一个数字,计算拼凑这个数字最少用到硬币的个数 4.有10亿个数字,如何找出top100.(引申问题,链表与数组的的选用)
HashMap的内部数据结构
Rehash的实现
ConcurrentHashMap的实现原理,与HashTable区别是什么(分Segment)
Java有哪些同步机制
数据库有哪些锁,哪些引擎,分别共享锁和排他锁的区别,应用场景有什么不同
B树和B+树的区别,为什么选用B+树作为数据库索引,B+数的孩子节点索引用什么方法查找(二分法……)
为什么mysql推荐自增int作为主键
redis的分布式锁用了什么方法实现(setNX背后的数据结构)
synchronize都能修饰什么,有什么区别
volatile解决了什么问题,原理是什么
Java的异常有几种
ThreadLoacl的原理是什么,怎么用
写一个观察者模式和修饰者模式
Java都有哪些连接池,连接池的的原理是什么,具体的技术细节,包括核心工作线程
linkedBlockingQueue的原理,一些场景会发生什么(队列满了会怎样,队列空了工作线程会怎样等等)
servlet的技术细节,原理,线程安全,工作流程
Stirng,StringBuilder,StringBuffer的区别
简述GC
简述AOP
Java有哪些Lock
Concurrent包下面都有哪些类,为什么要有concurrent类
TreeMap背后的数据结构是什么,红黑树的原理是什么……
一些复杂的SQL怎么写,四种连接都是什么样的
多线程程序怎么设计
public,protected,private,final关键字在Java中的用法
Abstract class 和Interface 有什么区别
Vector 和 ArrayList 有什么区别
Java集合中的Iterator起什么作用
ava中创建一个对象有哪几种方法,区别是什么
多线程有几种表示方法,都是什么
同步有几种实现方法,都是什么
描述一下Java中的异常机制,什么是Checked Exception, Unchecked Exception
-描述一下Java ClassLoader 或者 J2EE ClassLoader的工作原理?(可以画图)
-MVC的各个部分都有那些技术来实现?如何实现? -描述一下Struts的工作方式?
JSP中包含哪几个内置对象? -JSP中两种跳转方式分别是什么?有什么区别? -描述一下JSP中taglib的用法?
Javascript中如何校验数字型
EJB2.0中包括哪些内容? 作用分别是什么? -一个SessionBean包含哪几个组件?
各个组件作用是什么? -描述一下一个EJB应用中EJB部署文件,以及你所熟悉的App Server的部署文件的作用?
你所知道的设计模式(包括EJB,J2EE的设计模式),以及他们应用的场合
解析XML主要方法有哪些? 各有什么区别
数据库: 事务的概念!不同层次的锁? 数据的索引是怎么实现的?
b树,索引不能太高,因为要放进内存中去的 数据库的隔离机制
操作系统: kill -9 和kill -15
线程池和连接池 如何保存某个线程的当前状态
算法: 问了一个二叉树的
java java的锁(在static 和非static函数上加的差异,一个加在类上,一个加在对象上) jvm方面
堆和栈的定义,堆和栈里面的对象,哪个运行速度快。
wait()方法和notify()方法干什么用的,wait()方法有什么使用限制,是哪儿都能用么
Treemap的实现。 一、数据库各种事务隔离级别
区别TCP UDP HTTP HTTPS SFTP FTP
服务器网络编程中,解决回话跟踪有哪几种方法?
http://blog.chinaunix.net/uid-26602509-id-3306451.html
内存溢出就是你向系统申请分配一块内存,但这个内存的大小不能满足程序的需求,就产生内存溢出。比如数组访问下标溢出。
内存泄露是你已经申请了分配了一块内存供程序使用,但程序在使用完成后,却没有归还系统,结果可能会导致你这块内存你自己不再访问,而系统也不能再次将它分配给需要的程序。
Last_insert_id()
自动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCREMENT列设置的第一个表发生的值。
<!-- useGeneratedKeys默认值为false,keyProperty的值对应的是User类中的主键名 -->
<insert id="getGeneratedKey1" parameterType="cn.domain.User" useGeneratedKeys="true" keyProperty="id">
insert into users(name, password) values(#{name}, #{password})
</insert>
<insert id="getGeneratedKey2" parameterType="cn.domain.User">
<!-- 使用这种方式要注意,resultType是要设置的,否则将抛异常,该值对应的User类中的主键类型 -->
<!-- keyProperty对应的是User类中的主键名,假设取名为user_id,则这边也要改成user_id -->
<selectKey keyProperty="id" resultType="int">
select LAST_INSERT_ID()
</selectKey>
insert into users(name, password) values(#{name}, #{password})
</insert>
<!-- 系统服务组件的切面Bean -->
<bean id="serviceAspect" class="cn.ServiceAspect"/>
<!-- AOP配置 -->
<aop:config>
<!-- 声明一个切面,并注入切面Bean,相当于@Aspect -->
<aop:aspect id="simpleAspect" ref="serviceAspect">
<!-- 配置一个切入点,相当于@Pointcut -->
<aop:pointcut expression="execution(* cn.service..*(..))" id="simplePointcut"/>
<!-- 配置通知,相当于@Before、@After、@AfterReturn、@Around、@AfterThrowing -->
<aop:before pointcut-ref="simplePointcut" method="before"/>
<aop:after pointcut-ref="simplePointcut" method="after"/>
<aop:after-returning pointcut-ref="simplePointcut" method="afterReturn"/>
<aop:after-throwing pointcut-ref="simplePointcut" method="afterThrow" throwing="ex"/>
</aop:aspect>
</aop:config>
栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、int、long、float、double、boolean)和对象的引用,数据可以共享,速度仅次于寄存器(register),快于堆。
堆(heap):用于存储对象
String str="abc";
毫无疑问,这行代码创建了一个String对象。
String a="abc"; String b="abc"; 那这里呢?
答案还是一个。
String a="ab"+"cd"; 再看看这里呢?
答案是三个
public String(String original) { //other code ... }
单向链表内存占用比双向的少
双向的在某些查找中比单向的快,比如你有一个节点,要找它的前节点
单向链表的话,你必须从头节点开始遍历,而双向链表的节点中本身就有前节点信息
synchronized的几种用法还有区别
spring的事务为什么可以commit rollback
hashcode如何计算
单列的具体使用