Java
文章平均质量分 63
LightEggPlant
这个作者很懒,什么都没留下…
展开
-
复制构造器——Copy Constructor
复制构造器:1.提供了比clone 方法更好的解决办法原创 2014-08-24 17:00:26 · 686 阅读 · 0 评论 -
JVM——垃圾回收(GC)
GC简介java语言运行在java虚拟机(jvm)上,为了解决有限的空间和性能的保证这个矛盾体,jvm所具备的GC能力,可以有效的清除不用的对象,使空间的利用更加合理。下面介绍该机制的原理。判断对象已废弃引用计数法 给每一个对象都配备一个计数器,对于该对象,若增加一个指向它的引用,则计数器加1;每失效一个引用,则计数器减一。 但是,如果两个对象互相引用,但都对于外部都已失去用途,则这样的两个对原创 2015-03-16 23:36:46 · 970 阅读 · 0 评论 -
趣题——排序(1)
题目 给定一个最多包含40亿个随机排列的无符号32位整数的顺序文件,找出一个不在文件中的32位整数(文件中一定至少缺失一个这样的数)。在具有足够内存的情况下,如何解决该问题?如果有几个外部的临时文件可用,但是仅仅有几百字节的内存,又该如何解决该问题?思路(仅考虑单机情况)关于括号的提示——文件中一定至少缺失一个这样的数: 一个无符号32位的整数的最大为 2322^{32},即42949672原创 2015-04-13 10:17:17 · 559 阅读 · 0 评论 -
Java中的异常
java中有个Throwable类,顾名思义,可抛出。Throwable 又分为两大类:Error和Execption。Error:错误,属于不可查。比如:VirtualMachineError、NoClassDefFoundError、OutofMemoryError等。Execption:异常,分为可查与不可查两类。不可查异常:RunTimeExecption,包括NullPointerE原创 2015-04-21 21:46:20 · 862 阅读 · 0 评论 -
Java中的try-catch-finally
我们平常所说的try-catch,throw均针对可查异常。 关于异常分类,请查看Java中的异常一旦某个catch语句捕获到异常,将进入异常的处理代码,直到处理结束,整个try-catch语句结束,后面的其他的catch即使有异常也无法匹配进入。另一个关于执行顺序的例子如下:public boolean test1(){ boolean b = true; try原创 2015-04-21 21:56:00 · 700 阅读 · 0 评论 -
Java的数据类型转换
Java数据类型分为三大类,即布尔型,字符型和数值型。其中,数值型有分为整型和浮点型。相对于数据类型,Java的变量类型分为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,编程时还经常用到两种变量类型:String和Date。 (1) 数据类型转换的种类 J原创 2015-05-04 15:05:32 · 796 阅读 · 0 评论 -
JVM的字符表示
JVM在设计中是不允许多种编码方式并存的。这是因为如果在内存中Java字符可以有GBK、UTF-16等多种编码形式存在,那么对开发者来说,连打印字符串都寸步难行。例如,一个GB2312字符串后面跟了一个UTF-8字符串,那么连接后的最终结果是什么编码呢?Java开发者必须牢记:在Java中,字符串只以一种形式存在,那就是Unicode(不选择任何特定的编码,直接使用他们在字符集中的编号,这是统一的唯原创 2015-05-01 17:26:06 · 1541 阅读 · 0 评论 -
Spring常用注解
常用注解有以下几种:@Autowired@Qualifier("")@Repository@Service@Component@Controller@WebServelet@Entity@Table(name="")@Id@Column(length=)@GeneratedValue(strategy=GenerationType.AUTO)@S原创 2015-01-14 14:54:51 · 1216 阅读 · 0 评论 -
Ibatis入门
ibatis介绍iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2002年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和·NET的持久层框架。搭建ibatis环境jar包:<dependency> <groupId>org.apache.ibatis</groupId>原创 2015-05-26 13:16:25 · 798 阅读 · 0 评论 -
HashMap源码学习
HashMap源码学习及再哈希策略的意义解析。原创 2015-06-15 14:59:16 · 616 阅读 · 0 评论 -
Java类加载相关知识
类加载的委托机制类的加载一般会联系到三种类加载器(以下内容不涉及到自定义加载器): BootstrapClassLoader ExtendedClassLoader AppClassLoader(又叫SystemClassLoader) 从上到下这三个加载器类是父子关系。当运行一个程序的时候,总是由AppClassLoader开始加载指定的类,在加载类时,每个类的加载首先都会上交给父类,父类原创 2015-09-01 22:09:12 · 577 阅读 · 0 评论 -
趣题——“1”的个数
趣题——“1”的个数题目:编写一个函数,确定一个整数的计算机内部表示中有多少个“1”。方法一:思路:这个问题看上去是一个简单的转换题,即将一个十进制转换为二进制。但事实上,任何一个数字在计算机中已经是二进制表示了。因此,不再需要显式地使用程序将其转换。对于一个二进制,有多少个1,可以从低位开始数。即每次右移一位,并判断移除的这一位是否为1,直到右移结果为0为止。例如: 在100101 中, 1.原创 2015-02-11 22:17:39 · 699 阅读 · 0 评论 -
趣题——打开的锁
题目:在一个走廊里,按顺序排列着编号为1到100的100把锁,他们都是锁上的,要求在第一次从走廊一头走到另一头的时候,打开所有锁;第二次时,将编号为2的倍数的锁改变状态(从开到关,或从关到开);第三次时,将编号为3的倍数的锁改变状态;以此类推,问当第100次经过走廊的时候,哪些锁是开着的。方法:这题不会傻到让你把所有锁都画出来,即便这样,也不能够画完100次的状态。 我们首先模拟第一遍经过走廊,每原创 2015-02-11 23:38:33 · 843 阅读 · 0 评论 -
趣题——三类背包问题
引言背包问题作为一个经典问题在动态规划中是很基础的一个部分,而以0-1背包问题为原题,衍生出来的各类题目千变万化,解法也不同。 本文以三道背包问题的变体着手讲解,希望能够做到触类旁通。0-1背包 给定n件物品和一个背包。物品i的价值是Wi,体积为Vi,背包的容量为C。可以任意选择装入背包的物品,求装入背包中的物品最大总价值。(Vi,C均为正整数)在选择装入背包的物品时,有这样一个隐性条件:对原创 2015-02-16 17:30:05 · 1960 阅读 · 0 评论 -
getDeclaredMethod 和 getMethod 的区别
在使用反射的时候,会用到原创 2014-08-17 22:25:05 · 2694 阅读 · 0 评论 -
Java——Runnable 和Callable
一般情况下,多线程的使用涉及到了Thread原创 2014-11-05 16:10:19 · 586 阅读 · 0 评论 -
leetcode——Balanced Binary Tree
Given a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never diffe原创 2014-10-11 15:59:20 · 681 阅读 · 0 评论 -
Java 泛型类型推断注意之一
Java jkd1.5之后加入了对模糊类型的tuidua原创 2014-08-22 22:48:54 · 1325 阅读 · 0 评论 -
Java——PriorityQueue
PriorityQueue是基于优先级堆的极大优先级队列。原创 2014-11-06 21:06:20 · 2410 阅读 · 0 评论 -
Java 中的多态和动态绑定
在Java中,如果一个类B继承了类A,则A为父类,B为子类。在运行的时候,系统能够根据具体的子类对象,将父类中用于指向某个方法的指针自动指向到该子类的“覆盖方法”上,从而调用这个“覆盖方法”运行。该现象就是后期绑定,即在运行时根据对象的类型进行绑定,也叫动态绑定或者运行时绑定。这样做的好处是具有拓展性,调用的时候可以仅仅使用父类调用,而不用关心子类到底是什么,只要子原创 2015-01-07 22:42:39 · 529 阅读 · 0 评论 -
Java 8 中HashMap的改进
HashMap的快速高效,使其使用非常广泛。其原理是,调用hashCode()和equals()方法,并对hashcode进行一定的哈希运算得到相应value的位置信息,将其分到不同的桶里。桶的数量一般会比所承载的实际键值对多。当通过key进行查找的时候,往往能够在常数时间内找到该value。但是,当某种针对key的hashcode的哈希运算得到的位置信息重复了之后,就发生了哈希碰撞。这会对H原创 2015-01-07 22:51:52 · 1556 阅读 · 0 评论 -
Java 中的try-catch-finally
java 的异常处理中,在不抛出异常的情况下,程序执行完 try 里面的代码块之后,该方法并不会立即结束,而是继续试图去寻找该方法有没有 finally 的代码块,如果没有 finally 代码块,整个方法在执行完 try 代码块后返回相应的值来结束整个方法;如果有 finally 代码块,此时程序执行到 try 代码块里的 return 语句之时并不会立即执行 return,原创 2015-01-07 23:20:03 · 528 阅读 · 0 评论 -
Spring定时器配置及使用
spring中集成了定时器功能,使用到了类:org.springframework.scheduling.quartz.SchedulerFactoryBean,org.springframework.scheduling.quartz.CronTriggerBean,org.springframework.scheduling.quartz.MethodInvokingJobDetailFa原创 2014-12-05 15:07:58 · 600 阅读 · 0 评论 -
cronExpression表达式使用方法
本内容跟spring中的quartz定时器相关,该定时器使用该表达是作为事件的时间控制。1、表示形式该表达式简洁简单,总共有7个空格分割的表达子式,形式为【* * * * * * *】而这七个位置上的东西表达方式有很多,意义从左往右依次是:秒 分 时 日 月 周 年,往往,“年”这个标志位可以不写,而其余的必须表示出来。2、常用规则*(星号)——代表该标志位的每一个。即原创 2014-12-05 15:39:01 · 1631 阅读 · 0 评论 -
线程同步——死锁及举例
在并发问题中,最严重的一类既是死锁。 死锁是由于多线程在征用多种资源的时候,所需资源被其他线程独占且无法被抢夺所产生的循环等待的现象。对于java中最常用的synchronized关键字(内置锁),一旦产生死锁,是无法通过程序自身解决的。因为synchronized除了顺利执行完加锁代码块,别无其他方式能够释放锁。因此,希望灵活使用锁的同志们可以考虑使用Lock(见《Java并发变成实战》)。下面原创 2015-09-02 19:31:24 · 657 阅读 · 0 评论