`
六十三
  • 浏览: 43145 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
一般现在时:I make love with her everyday. 一般过去时:I made love with her yesterday. 一般将来时:I will make love with her tomorrow. 现在进行时:I am making love with her 过去进行时:I was making love with her at this time yesterday 将来进行时:I will be making love with her at this time tomorrow 现在完成时:I have made love with ...
你当前参与项目的架构和领域模型画一下。 分析一下jvm为什么会出现oom。系统运行了半年出现这个问题。怎么排查。 一个集群应用,后面挂一个 oracle 。怎么保证事务性。 你是怎么调用 memcached的,如果更新memcached过程中网络断开应该怎么处理。 雪崩怎么处理。 一个对象,包含 cancel、 approval、等几个状态,分布式环境下怎么保证状态能同步更新。 单元测试用过什么工具。如果单元测试方法中包含一个外部依赖,应该如何测试。如何去依赖。 一个用户要买一本书,用户有“金牌”“银牌”“铜牌”等等级。书在某种状态下有相应的折扣。代码包含很多if else 。如 ...
  问:为什么要在JSP中使用 <%@ page session="false" %>   答: 一个原因是 内存 和 性能。如果你有一个页面不需要在一个Session中被调用(比如,about.jsp,faq.jsp)。 那么你可以再JSP页面中使用此句话阻止服务端创建Session。    
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session ...
一 JVM内存模型 1.1 Java栈 Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。栈空间随着线程的终止而释放。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。 1.2 堆 Java中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等。 1.2.1 Generation JVM堆一般又可以分为以下三部分:
1.Java对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。图1为对象应用类层次。   图1 ⑴强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异 ...
数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。 基本类型的变量保存原始值,即:他代表的值就是数值本身; 而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。     基本类型包括:byte, short, int, long, char, float, double, Boolean, returnAddress 引用类型包括:类类型,接口类型和数组。 堆与栈 堆和栈是程序运行的关键,很有必要把他们的关系说清楚。  
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程中生成的临时变量,这些对象生命周期会比较短,比如:String对象,由于其不变类的特性,系统会产生大量的这些对象,有些对象甚至只用一次即可回收。 试想,在不进行对象存活时间区分的情况下,每次垃圾回收都是对整个堆空间进行 ...
   对于双检锁,其实有多种不同的用法,有很多种用法是无论如何不会出现问题的.我最初用双检锁来获取jndi对象时,立即有人告诉我双检锁是不安全的,我笑着告诉他:是否安全我比你更有把握.   static DataSource ds = null; public static DataSource getDataSource(){ if(ds == null){ synchronized(this.getClass()){ if(ds == null) ds = xxx; } } return ds; }            这样的DC ...
1。模拟死锁1。1。主表-- Create table create table WDZ1 ( WDZ1ID NUMBER not null, MEMO VARCHAR2(20) ) ; alter table WDZ1 add constraint XXXXXX primary key (WDZ1ID);  1。2。从表(没有外健的索引)-- Create table create table WDZ2 ( WDZ2ID NUMBER not null, WDZ1ID NUMBER, MEMO VARCHAR2(20) ) ; ...
先来看下面的 代码:   public class Test { public static void main(String[] args) { short i ; i = i + 1; //编译错误 i += 1; //正确 byte j = 1; //正确 byte k = 2; byte l = j + k; //错误 } }     1、关于 i = i + 1: i + 1是int型,赋值给short 型变量需要做显示转换。   2、+= 、-= 属于复合赋值运算符(Compound Assign ...
上周接到华为招聘电话,让周六去应聘android 程序员。。周六反正也没事就去了。。。   华为这次招聘是在 新金桥路2222,太太太远了。。。按照丁丁地图和百度地图的说法 世纪大道站 转790 ,然后乘20站   到金海路金穗路。   790跟网上介绍的时间间隔好像不太一样,周末的790貌似是半小时一班。。地铁转公交整整在路上花费两个半小时才到达   目的地。。   面试是在华为的餐厅进行的,还是老样子,先做题。我选择的是java试题,还有其他的,可以自己选择。    题目结构是: 1、判断题 五道 2、单选题 五道 3、多选题 五道 4、简答题 5、(好像是 ...
转自:http://marshal.easymorse.com/archives/425     DataSource接口(javax.sql.DataSource)替代DriverManager获取Connection的方法,有以下好处: 可以在部署时灵活更换Connection实现; 可以更好的屏蔽数据库的相关性。 以下以oracle为例说明。   使用厂商DataSource 数据库厂商在提高JDBC2.0和以上版本的JDBC驱动中应该包含厂商的DataSource实现。   OracleDataSource ods = new OracleDataSource( ...
出处:http://www.iteye.com/topic/164644     使用 synchronized 关键字,这也是最原始的方法。代码如下    synchronized(anObject) { value = map.get(key); }       使用 JDK1.5 提供的锁(java.util.concurrent.locks.Lock)。代码如下    lock.lock(); value = map.get(key); lock.unlock();       实际应用中,可能多数操作都是读操作,写操作较少 ...
出处:http://www.iteye.com/topic/754887     HashMap的数据结构 HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希值的冲突,HashMap采用链表来解决的。在HashMap里有这样的一句属性声明: transient Entry[] table;   Entry就是HashMap存储数据所用的类,它拥有的属性如下 final K key; V value; final int hash; Entry<K,V> next;   看到ne ...
Global site tag (gtag.js) - Google Analytics