Java se基础的积累
不断完善的少年
干什么都需要不断完善。
馒头比外卖更努力。
展开
-
定义接口类型的引用变量有什么好处?
1, 在定义一个引用变量时, 心里想的应该是:我在这里需要一个什么样的功能,我是因为需要什么功能才创建变量的! 接口定义了功能的集合! 所以我应该是用接口来定义这个引用变量嘛! 2, 定义好了引用变量以后, 要让它引用一个对象, 这个对象就应该是实现了那个接口的类的实例了! 随便一个类, 只要它继承实现了那个接口, 那么它的实例都可以在这里被引用.转载 2015-09-21 15:15:05 · 1494 阅读 · 0 评论 -
原码, 反码, 补码 详解(一)
为什么要用?计算机内部采用二进制表示数值。如十进制数10用二进制数表示为1010。设计算机字长为8,即1Byte。最高位表示符号,0为正,1为负来看看用原码表示的数在进行加减乘除运算是会有什么问题:十进制:1-1=1+(-1)=0原码:(0000 0001)-(0000 0001)=(0000 0001)+(-0000 0001)=(0000 0001)原+(1000 0001转载 2016-05-31 15:05:33 · 1307 阅读 · 0 评论 -
原码, 反码, 补码 详解(二)
一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的转载 2016-05-31 14:53:27 · 452 阅读 · 0 评论 -
java四种位运算
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。 1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class转载 2016-05-08 21:35:40 · 3322 阅读 · 0 评论 -
Java IO的RandomAccessFile的使用
现有如下的一个需求,向已存在1G数据的txt文本里末尾追加一行文字,内容如下“Lucene是一款非常优秀的全文检索库”。可能大多数朋友会觉得这个需求很easy,说实话,确实easy,然后XXX君开始实现了,直接使用Java中的流读取了txt文本里原来所有的数据转成字符串后,然后拼接了“Lucene是一款非常优秀的全文检索库”,又写回文本里了,至此,大功告成。后来需求改了,向5G数据的txt文本里追转载 2016-05-09 13:05:38 · 187 阅读 · 0 评论 -
synchronized 修饰在 static方法和 非static方法的区别
【问题描述】关于Java中synchronized 用在实例方法和对象方法上面的区别【问题分析】大家都知道,在Java中,synchronized 是用来表示同步的,我们可以synchronized 来修饰一个方法(实例方法和类方法---注:不知道这样叫准确不准确,大家理解我的意识就行了)。也可以synchronized 来修饰方法里面的一个语句块。修饰实例方法:[转载 2016-06-01 14:35:22 · 483 阅读 · 0 评论 -
Java:String、StringBuffer和StringBuilder的区别
1 StringString:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。String类的包含如下定义:[java] view plain copy/** The value is used for character storage. */ private final char转载 2016-06-01 15:20:22 · 344 阅读 · 0 评论 -
static静态代码块与非静态代码块与构造函数执行顺序
先执行块,后执行构造函数块和声明变量的时候赋值,执行顺序是根据代码的顺序决定的 参考:Java中程序执行顺序(注意评论) 总结:静态代码块总是最先执行。 非静态代码块跟非静态方法一样,跟对象有关。只不过非静态代码块在构造函数之前执行。 父类非静态代码块、构造函数执行完毕后(相当于父类对象初始化完成), 才开转载 2016-05-09 21:57:00 · 501 阅读 · 0 评论 -
数组-在一个有序的数组中寻找出现次数超过一半的那个数
问题描述:在一个不一定有序的数组中寻找出现次数超过一半的那个数思考:参考了网上的办法,忽略两个不相等的相邻的数,即一个数i,出现次数为n>(总数/2),那么(n-1)>((总数-2)/2),考虑在遍历数组的时候,使用一个值保存临时数字出现次数,一个值保存临时的那个数字,相同就加一,不相同减一,如果被减到0,说明就该用下一个数字作为有可能是出现次数最多的临时数字了,时间复杂度原创 2016-05-22 11:03:59 · 1101 阅读 · 0 评论 -
Java内部类
意义:1)可以访问外部类的数据,包括私有数据。2)同一包的其他类看不到。3)使用一种匿名类可以节约大量代码。特点:内部类相当于内部类有个实例域引用了外部类。如图:实例:public class Out { boolean choice = true;public static void main(String[] args){ new Out().methodOu原创 2015-12-26 21:36:44 · 279 阅读 · 0 评论 -
java常用的包
转载:http://blog.csdn.net/wangloveall/article/details/8029157Java采用包结构来组织和管理类和接口文件。本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的。若是离开它,还真不能做事情了。 第一个包:java.lang包。 阿情说:该包提供了Java语转载 2016-06-12 20:23:55 · 353 阅读 · 0 评论 -
内部类访问局部变量的时候,为什么变量必须加上final修饰(转)
这里的局部变量就是在类方法中的变量,能访问方法中变量的类当然也是局部内部类了。 我们都知道,局部变量在所处的函数执行完之后就释放了,但是内部类对象如果还有引用指向的话它是还存在的。例如下面的代码:class Outer{转载 2017-01-11 11:53:21 · 317 阅读 · 0 评论 -
Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录大纲: 一.Concurr转载 2016-05-15 19:29:09 · 542 阅读 · 0 评论 -
深入理解Class对象和new关键字
Java代码 public class TestClass { public static void main(String[] args) { try { // 测试Class.forName() Class testTypeForName = Class.forName( "TestClassType" );转载 2016-05-03 10:29:53 · 1512 阅读 · 0 评论 -
HashSet源码粗略解析
复习下java的常用集合框架,java常用的集合大致有两种类型,一种实现了Collection接口表示普通的集合,一种实现了Map接口表示严格的键值对,其中Collection又分为List接口类型和Set接口类型,其中List接口类型允许集合中元素重复,例如ArrayList,Vector,LinkedList,Stack,Set接口实现的集合不允许重复元素,例如HashSet和TreeSet。原创 2016-05-13 00:13:43 · 317 阅读 · 0 评论 -
java变量的总结
java中的变量有两大类:全局变量,局部变量。1.全局变量:也叫成员变量,在整个类中定义,成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。全局变量又分为:1)类变量2)实例变量区别在于:类变量又为静态变量,需要加上修饰符static,需要使用的时候无需实例化对象,直接使用类名调用,当然也可以使用实例的对象调用,在此情况下的所有实例共享一块儿内存原创 2015-11-18 17:14:35 · 251 阅读 · 0 评论 -
java代理理解(一)
(菜鸟理解,大牛勿喷啊~)通俗地说就是,程序运行时被构造出来的代理对象,用一次(无论是实现接口的还是继承自Object的)方法,就要调用一次处理器的invoke方法,然后再然后使用另外invoke方法使用被代理的类的方法(这里使用到了反射的invoke方法)。说起来太tm抽象了,下面用关键词详细说下。作用:可以在程序运行时创建一个以一组接口为条件的类,有时在代码中有一个表示接口的c原创 2015-11-27 22:13:43 · 196 阅读 · 0 评论 -
java中的this关键字的总结
1.在写java bean的seter/geter方法时时经常用到的一种this:当类的成员变量和局部变量的重名的时候this表示方法所在的类,如下:public class yuege{private int id;public void setId(int id){this.id = id;}public int getId(){return this.id;}}2.pub原创 2015-11-09 22:52:36 · 396 阅读 · 0 评论 -
运行时异常与一般异常有何异同?
转自:http://blog.csdn.net/huhui_cs/article/details/388177911.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:图片来源:http://bl转载 2016-02-03 11:37:09 · 886 阅读 · 0 评论 -
Java中的基本概念(PO,VO,POJO,DTO,DAO)
感谢:http://www.blogjava.net/jzgl-ever/articles/217600.htmlPO: persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。 BO: business object业务对象 主要作用是把业务逻辑封装为一个对象。转载 2016-01-20 15:23:32 · 216 阅读 · 0 评论 -
java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。转载 2016-04-13 10:35:15 · 336 阅读 · 0 评论 -
如何看java类图
参考:http://blog.163.com/qiyaoqiang_blog/blog/static/1637983202011102792524988/在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。类图在UML的9个图中占据了一个相当重要的地位。类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及转载 2015-10-23 22:09:10 · 11812 阅读 · 1 评论 -
System.nanoTime与System.currentTimeMillis的区别
平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果,但是在执行一些循环中使用了System.currentTimeMillis,那么每次的结果将会差别很小,甚至一样,因为现代的计算机运行速度很快。后来看到java中产生随机数函数以及线程池中的一些函数使用的都是System.nanoTime,下面说一下这2个方法的具体区别。转载 2016-04-14 17:24:47 · 479 阅读 · 0 评论 -
Java泛型的理解
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi")转载 2016-04-15 16:47:18 · 307 阅读 · 0 评论 -
java装箱拆箱理解
一.什么是装箱?什么是拆箱? 在前面的文章中提到,Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为每种基本数据类型提供包装器类型在此不进行阐述,有兴趣的朋友可以查阅相关资料。在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:1Integer i = new Integer(10转载 2016-04-15 16:56:51 · 377 阅读 · 0 评论 -
java import、package作用与用法
有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以為原始码 .java 档案中的 import 会让编译器把所 import 的程式通通写到编译好的 .class 档案中,或是认為 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念。让我们先了解一下,Java 的 package 到底有何用转载 2016-04-15 21:27:53 · 404 阅读 · 0 评论 -
java抽象类和接口在设计时的取舍
abstract class和interface可谓是java中的双骄,既相辅相成又各司其职,相信一部分从业人员在没有掌握其中奥妙之前用的也就比较随意,java中为什么会出现这么模糊不清的一对呢?就从java的设计意图谈谈抽象类和接口的区别 平常我们总是说抽象类(abstract class)里可以写实现方法而接口(interface)中却不可以,无论面试或是新手询问转载 2016-04-17 21:23:13 · 940 阅读 · 0 评论 -
BigDecimal从单位元转换为分,并四舍五入取整
单位的转换为乘以100public static Object yuan2penny(BigDecimal yuan, Boolean toInt){ if(toInt) { //元乘以100,并四舍五入,并取整 return yuan.multiply(new BigDecimal(100)).setScale(0, BigDecimal.原创 2017-02-15 11:52:42 · 4044 阅读 · 0 评论