随笔分类 -  Java Base

java basic
摘要:java中的修饰符http://bdcwl.blog.163.com/blog/static/76522265200910232174261/java static final 初始化http://tanbing1986411.blog.163.com/blog/static/7259798220103610224434/java final变量http://blog.csdn.net/adderking/article/details/7622983 阅读全文

posted @ 2013-11-10 13:57 heartstage 阅读(139) 评论(0) 推荐(0)

JAVA 父类与子类初始化顺序问题
摘要:main方法-->子类对象的初始化语句(new className()语句)--->子类构造【因为继承的缘故,它先不会执行】--->父类构造【这一步先不会执行】--->父类静态变量----->子类静态变量---->初始化父类变量(按顺序)--->父类构造---->子类变量初始初始(按顺序)--->子类构造--->运行main后的语句--->程序结束。(按eclipse得debug顺序记录)无继承的类初始化顺序:静态变量--->静态初始化块------>变量---->初始化块----->构造器。附测试程序: 阅读全文

posted @ 2013-11-06 00:59 heartstage 阅读(1170) 评论(0) 推荐(0)

获得类对象的四种方法
摘要:转载自: http://duben.iteye.com/blog/367218在学习反射机制时,总结一下获得类对象方式: 第一种方式:通过类本身来获得对象Java代码 Classclassname= this .getClass(); 第二种方式:通过子类的实例获取父类对象Java代码 ClassNamecn= new ClassName(); UserClass=cn.getClass();ClassSubUserClass=UserClass.getSuperclass();第三种方式:通过类名加.class获取对象Java代码 ClassForClass=**.**.ClassNa... 阅读全文

posted @ 2013-11-06 00:42 heartstage 阅读(678) 评论(0) 推荐(0)

Java内部类
摘要:提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的设计者在内部类身上的确是用心良苦。学会使用内部类,是掌握Java高级编程的一部分,它可以让你更优雅地设计你的程序结构。下面从以下几个方面来介绍:第一次见面public interface Conten 阅读全文

posted @ 2013-10-31 01:47 heartstage 阅读(207) 评论(0) 推荐(0)

Java面试中的多线程问题
摘要:很多核心 Java 面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。 0、Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果。 1、解释实现多线程的几种方法? 一 Java 线程可以实现 Runnable 接口或者继承 Thread 类来实现,当你打... 阅读全文

posted @ 2013-10-27 23:25 heartstage 阅读(232) 评论(0) 推荐(0)

继承和组合的比较
摘要:面向对象系统中功能复用的两种最常用技术是类继承和对象组合(object composition)。正如我们已解释过的,类继承允许你根据其他类的实现来定义一个类的实现。这种通过生成子类的复用通常被称为白箱复用(white-box reuse)。术语“白箱”是相对可视性而言:在继承方式中,父类的内部细节对子类可见。对象组合是类继承之外的另一种复用选择。新的更复杂的功能可以通过组装或组合对象来获得。对象组合要求被组合的对象具有良好定义的接口。这种复用风格被称为黑箱复用(black-box reuse),因为对象的内部细节是不可见的。对象只以“黑箱”的形式出现。继承和组合各有优缺点。类继承是在编译时刻 阅读全文

posted @ 2013-10-27 16:44 heartstage 阅读(574) 评论(0) 推荐(0)

Java编程经验汇总
摘要:JDK和JRE 大家肯定在安装JDK的时候会有选择是否安装单独的jre,一般都会一起安装,我也建议大家这样做。因为这样更能帮助大家弄清楚它们的区别: Jre 是java runtime environment, 是java程序的运行环境。既然是运行,当然要包含jvm,也就是大家熟悉的虚拟机啦, 还有所有java类库的class文件,都在lib目录下打包成了jar。大家可以自己验证。至于在windows上的虚拟机是哪个文件呢? 学过MFC的都知道什么是dll文件吧,那么大家看看jre/bin/client里面是不是有一个jvm.dll呢?那就是虚拟机。 Jdk 是java development 阅读全文

posted @ 2013-10-27 16:04 heartstage 阅读(289) 评论(0) 推荐(0)

JAVA基础加强(张孝祥)_类加载器、分析代理类的作用与原理及AOP概念、分析JVM动态生成的类、实现类似Spring的可配置的AOP框架
摘要:1、类加载器·简要介绍什么是类加载器,和类加载器的作用·Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader·类加载器也是Java类,因为其他是Java的类加载器本身也要被类加载器加载,显然必须有第一个加载器不是Java类,这正是BootStrap·Java虚拟机中的所有类加载器采用具有树形结构进行组织,在实例化每个类装载器对象时,需要为其指定一个父类级的装载器对像或者采用系统默认类装载器为其父类加载·类加载器之间的父子关系和管 阅读全文

posted @ 2013-10-27 01:57 heartstage 阅读(586) 评论(0) 推荐(0)

App Class Loader
摘要:Java本身是一种设计的非常简单,非常精巧的语言,所以Java背后的原理也很简单,归结起来就是两点:1、JVM的内存管理理解了这一点,所有和对象相关的问题统统都能解决2、JVM Class Loader理解了这一点,所有和Java相关的配置问题,包括各种App Server的配置,应用的发布问题统统都能解决App Class Loader|----- EJB Class Loader|----- Web App Class Loader如果在App Class Loader级别配置,是全局可见的。如果打包在EJB里面,那么就不会影响到Web Application,反之亦然,如果你在WEB-I 阅读全文

posted @ 2013-10-26 16:55 heartstage 阅读(419) 评论(0) 推荐(0)

Java中堆和栈有什么区别
摘要:stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里。栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量.在java中,所有基本类型和引用类型都在栈中存储.栈中数据的生存空间一般在当前scopes内(就是由{...}括起来的区域).堆(heap):是一个可动态申请的内存空间(其记录空闲内存空间的链表由操作系统维护),C中的malloc语句所产生的内存空间就在堆中.在java中,所有使用new xxx()构造出来的对象都在堆中存储,当垃圾回收器检测到某对象未被引用,则自动销毁该对 阅读全文

posted @ 2013-10-26 16:45 heartstage 阅读(776) 评论(0) 推荐(0)

Static和Final修饰类属性变量及初始化
摘要:1.static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用. public class Test{public static int a;private Test(){a=0;}}如果属性被修饰为static静态类资源,那么这个字段永远只有一个,也就是说不管你new test()多少个类的对象,操作的永远都只是属于类的那一块内存资源.例如: Test t1=new Test();t1.a=10;Test t2=new Test();Sy 阅读全文

posted @ 2013-10-26 16:42 heartstage 阅读(1060) 评论(0) 推荐(0)

浅谈Java中final,finalized,finally
摘要:final: final可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。 final成员 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,二是在构造函数中,两者只能选其一。 下面程序很简单的演示了final的常规用法: publicclassTest{ finalintt=1;//在定义时给值 //或者(两者只能 阅读全文

posted @ 2013-10-26 16:41 heartstage 阅读(430) 评论(0) 推荐(0)

Web/JAVA 简单题目汇总
摘要:【Java标识符,变量、常量】一。Java合法标识符命名规则(1)区分字母大小写,标识符长度不限 (2) 英文,Unicode码双字节文字字符(日文,韩文,中文),数字,下划线,$(美元符号)均可,但不能以数字打头。(3)不能使用关键字以及除(2)之外的字符,如‘#’‘.’。。。等二。Java中停用关键字 goto,const是C语言使用关键字,由于缺点很多,Java中停用了这些字符。---------------------------------------------------------------------------------------------------------- 阅读全文

posted @ 2013-10-26 15:36 heartstage 阅读(208) 评论(0) 推荐(0)

equals和hashCode
摘要:先谈equals。equals是Object类提供的方法之一,众所周知,每一个java类都继承自Object类,所以说每一个对象都有equals这个方法。而我们在用这个方法时却一般都重写这个方法,why?Ok,先看一个Object类中equals()方法的源代码:public boolean equals(Object obj) { return (this == obj); } 从这个方法中可以看出,只有当一个实例等于它本身的时候,equals()才会返回true值。通俗地说,此时比较的是两个引用是否指向内存中的同一个对象,也可以称做是否实例相等。而我们在使用equals()来比较... 阅读全文

posted @ 2013-10-23 18:05 heartstage 阅读(264) 评论(0) 推荐(0)

JDK与JRE的区别
摘要:很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目录下,后面这套比前面那套少 阅读全文

posted @ 2013-10-23 17:39 heartstage 阅读(186) 评论(0) 推荐(0)

bit & byte & B & KB & Kbps & KBps & ps
摘要:存储单位bit&byte&B&KB&Kbps&KBps&ps(bit,位;byte,字节;区别)Bit,位:二进制数系统中,每个0或1就是一个位(bit),位是内存的最小单位。Byte,字节:字节是由8个位所组成,可代表一个字符(A~Z)、数字(0~9)、或符号(,.?!%&+-*/),是内存储存数据的基本单位。1byte=8bit1KB=1024bytes1MB=1024KB1GB=1024MB计算机中的信息都是二进制的0和1来表示,其中每一个0或1被称作一个位,用小写b表示,即bit(位);大写B表示byte,即字节,一个字节=八个位 阅读全文

posted @ 2013-10-17 15:44 heartstage 阅读(1203) 评论(0) 推荐(0)

一个资深面试官的“面试心得”
摘要:在公司当技术面试官几年间,从应届生到工作十几年的应聘者都遇到过。先表达一下我自己对面试的观点:1.笔试、面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”。通过一、二个小时内的做题、交流,只是没有其他办法下进行的无奈之举,所以通过了面试不代表有多成功,没通过也不代表有多失败。 2.好的面试官本身交谈的时候就不应当把自己一个居高临下的角色上,应当把自己和应聘者当做两个做技术的人平等的交流,把自己当作权威往往就会受到观点的角度、语言表达、工作领域的惯性的制约。 3.好的考察题目则是大家能经常接触,不同层次的人能有不同层次的答案,能从问题引申出后面继续讨论的话题。 阅读全文

posted @ 2013-10-17 09:24 heartstage 阅读(465) 评论(0) 推荐(0)

Static Nested Class 和 Inner Class的不同
摘要:Nested Class 一般是C++的说法,Inner Class 一般是JAVA的说法。Nested class分为静态Static nested class 的和非静态的 inner class,静态的Static nested class是不可以直接调用它的外部类enclosing class的,但是可以通过外部类的引用来调用,就像你在一个类中写了main方法一样。非静态类inner class 可以自由的引用外部类的属性和方法,但是它与一个实例绑定在了一起,不可以定义静态的属性、方法 。Inner Class(内部类)定义在类中的类。Nested Class(嵌套类)是静态(stat 阅读全文

posted @ 2013-10-12 17:40 heartstage 阅读(4607) 评论(1) 推荐(0)

Java集合类
摘要:HashMap和HashTable的区别Ø最明显的区别在于Hashtable是同步的(每个方法都是synchronized),而HashMap则不是.ØHashMap继承至AbstractMap,Hashtable继承至Dictionary,前者为Map的骨干,其内部已经实现了Map所需要做的大部分工作,它的子类只需要实现它的少量方法即可具有Map的多项特性。而后者内部都为抽象方法,需要它的实现类一一作自己的实现,且该类已过时Ø两者检测是否含有key时,hash算法不一致,HashMap内部需要将key的hash码重新计算一边再检测,而Hashtable则直接利用 阅读全文

posted @ 2013-10-11 18:02 heartstage 阅读(213) 评论(0) 推荐(0)

HashCode()的作用
摘要:在实现Hash算法的集合里面,例如HashSet,该集合不能存放相同的数据,HashSet会根据对象的equals()和hashCode()方法来判断要存放的数据是否已经存在。Hash算法把HashSet划分成多个区域,每个区域就是以哈希码来作为该区域的唯一编码,而hashCode()的作用就是为某对象生成一个哈希码。Hash算法会认为如果两个对象的equals()比较后相等,那么它所对应的hashCode也应该相等,那么HashSet会从该哈希码所对应的那个区域来查找是否已经存在该对象数据,不存在则放进去。而如果只提供equals方法,不提供hashCode()方法,就算判断出两个对象引用相 阅读全文

posted @ 2013-10-11 18:00 heartstage 阅读(276) 评论(0) 推荐(0)

导航