随笔分类 - 13.面试题
摘要:1、什么是Hibernate的并发机制?怎么去处理并发问题? Hibernate并发机制: a、Hibernate的Session对象是非线程安全的,对于单个请求,单个会话,单个的工作单元(即单个事务,单个线程),它通常只使用一次, 然后就丢弃。 如果一个Session 实例允许共享的话,那些支持并
阅读全文
摘要:两个线程可以交换对象的同步点。每个线程都在进入exChange方法时给出某个对象,并接受其他线程返回时给出的对象。用于实现两个人之间的数据交换,每个人在完成一定的事务后想与对方交换数据,第一个先拿出数据的人将一直等待第二个人拿着数据到来时,才能彼此交换数据。 方法摘要 V exchange(V x)
阅读全文
摘要:一、CyclicBarrier使用 new Thread().start(); new Thread(new Runnable() {},"XXX").start(); 输出结果如下: 二、CountDownLatch使用 输出结果如下:
阅读全文
摘要:public class PrintMain { public static String obj1="obj1"; public static String obj2="obj2"; public static void main(String[] args) { new Thread(new Runnable() { public void run...
阅读全文
摘要:在介绍之前,先抛几个问题。 如果你都都能很明确的答上来了,说明你已经完全懂Thread.interrupt,可以不用往下看那了。 那如果不清楚的,带着这几个问题,一起来梳理下。 Thread的interrupt处理的几个方法: public void interrupt() : 执行线程interr
阅读全文
摘要:生产者、消费者模型 方式一:以LinkedBlockingQueue阻塞队列的方式来进行存储 方式二:以ArrayBlockingQueue有界阻塞队列的方式来存储 方式三:以wait/notify方式进行处理 关于生产者、消费者模型可以参考:http://blog.csdn.net/monkey_
阅读全文
摘要:关于ThreadLocal的使用请参见:http://ifeve.com/java-theadlocal/
阅读全文
摘要:在jvm规范中,每个类型都有自己的常量池。常量池是某类型所用常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型、字段、方法的符号引用。之所以是符号引用而不是像c语言那样,编译时直接指定其他类型,是因为java是动态绑定的,只有在运行时根据某些规则才能确定具体依赖的类型实例,这正是
阅读全文
摘要:下面将侧重介绍java乱码是如何产生的、存在哪些乱码的情况、该如何从根本上解决乱码问题。各位随博主一起征服令人厌烦的java乱码问题吧!!! 一、Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入、输出),这些交互内容包含的文字可能会包含中文。无论这些java类是与数据库
阅读全文
摘要:一、多线程共享变量 方式一:变量共享 XXX tt = new XXX; new Thread(tt).start(); new Thread(tt).start(); 另一种变量共享方式 方式二:以参数传递的方式共享变量 方式三:以Executors.newFixedThreadPool(N)方式
阅读全文
摘要:一、多线程共享变量 方法一:以变量共享的方式进行操作 public class AddMinusOperate { private int j=5; public synchronized void add() { j++; } public synchronized minus() { j--;
阅读全文
摘要:TCP连接三次握手 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
阅读全文
摘要:在学习红黑树之前,先看一下二叉排序树及平衡二叉树的特性:一、二叉排序树1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3. 它的左、右子树也分别为二叉排序树。二、平衡二叉树 它是一 棵空树或它的左右两个子树的高度...
阅读全文
摘要:1、Thread 类中的start() 和 run() 方法有什么区别?Thread.start()方法(native)启动线程,使之进入就绪状态,当cpu分配时间该线程时,由JVM调度执行run()方法。当你调用start()方法时你将创建新的线程,并且执行在run()方法里的代码。但是如果你直接...
阅读全文
摘要:1.Java的HashMap是如何工作的?HashMap是一个针对数据结构的键值,每个键都会有相应的值,关键是识别这样的值。HashMap 基于 hashing 原理,我们通过 put ()和 get ()方法储存和获取对象。当我们将键值对传递给 put ()方法时,它调用键对象的 hashCode...
阅读全文