Java常用问题集合

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如何计算
单列的具体使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值