- 博客(20)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 java中的非虚方法
要了解java中的非虚方法首先要明白虚方法的定义,在C++中的虚方法是指由virtual关键字修饰,在继承时才能确定是调用的父类方法或是子类方法。在java中虚方法是指在编译阶段和类加载阶段都不能确定方法的调用入口地址,在运行阶段才能确定的方法。在java中的非虚方法有三种: 1、由invokestatic指令调用的static方法,这种方法在编译时确定在运行时不会改变。 2、由inv
2015-04-20 10:12:33
1448
原创 JVM中内存的分类
关于JVM中内存的分类,在平时的学习中看到最多的是很多人都把JVM中的内存分为堆和栈。其实这是很粗略的分类方法。在JVM中的内存区域分为五个部分,分别是程序计数器,虚拟机栈,本地方法栈,堆和方法区。其中的虚拟机栈包括局部变量表,方法出口,动态链接和操作数栈等信息。
2015-04-11 21:08:48
404
原创 java语言发展的趋势
java技术会朝着以下几个方向发展:1、模块化2、混合编程多种能够运行在jvm上的编程语言各自发挥自己的优势,共同组成一个在jvm上运行的程序。3、多核计算随着多核处理器的发展,未来计算机的计算能力会大幅提高。为了更好的利用多核资源提高程序的运行速度,未来java会更多的支持多核计算。在java8中加入lamda运算可以,就是为了能够在多核时代仍然使得java成为主流语言。
2015-04-11 20:53:13
834
原创 java中深拷贝和浅拷贝的区别
浅拷贝是复制原对象的一个副本到另一个地方,原对象和拷贝后对象的地址不同。在拷贝对象中存在值类型和引用类型,值类型是完全拷贝,在拷贝对象中有一个一样的值类型,对拷贝对象中值类型的改变不会影响原对象。但是拷贝对象中的引用类型和原对象中的引用类型的地址相同,指向同一个对象,对拷贝对象中引用类型的改变会影响原对象中的引用类型,也就是说拷贝对象在拷贝时只是拷贝了引用类型的地址。浅拷贝的实现是通过直接实现
2015-04-08 10:23:42
558
转载 序列化和反序列化
这次我们讲的是控制对象的序列化和反序列化 控制序列化就是有选择的序列化对象,而不是把对象的所以内容都序列化,前篇我们的例子中介绍了transit变量和类变量(static)不被序列化,现在我们还有一种更为灵活的控制对象序列化和反序列方法,可以在序列化过程中储存其他非this对象包含的数据 我们现在再来介绍一个接口 java.io.Externalizable 。当对象实
2015-04-07 11:29:23
316
原创 sleep,wait和yield的区别
首先sleep是属于类Thread的方法,而wait是属于Object的方法 sleep使用的时候需要指定sleep的时间。sleep方法执行的时候,该线程并不会放弃对象锁,一直处于监控状态。等待指定的时间完了之后再重新获取该对象。而wait方法在使用的时候不需要指定等待时间,wait方法执行时会放弃对象锁,只有当另一个线程调用nofity或者notifyall方法时才重新获取
2015-04-06 16:52:19
998
原创 java中this和super的区别和联系
1、this是一个指向本对象的指针,而super是一个java的关键字2、this和super不能同时出现在同一个构造方法中3、this出现在构造方法中表示调用本类的其它构造方法,super出现在构造方法中表示调用父类的构造方法4、this出现在普通方法中表示对象调用者,super出现在普通方法中表示调用父类中被覆盖的同名方法5、this和super出现在类的构造方法中都必须写在第
2015-04-06 16:38:01
582
转载 堆栈的区别
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译
2015-04-05 16:11:18
1728
原创 java中堆和栈的不同
内存区域主要分为堆、栈、代码区和数据区其中代码区主要存放程序中的二进制代码数据区主要用于存放常量数据。java中的堆和栈都是内存的一部分。它们之间的区别主要体现在以下方面。1、分配时机的不同对于栈和堆来说都是运行时分配存储空间,但是栈是在进入代码区域的时候就要确定需要分配的存储空间的大小。而堆可以在运行过程中动态的分配内存空间大小,如动态创建对象。2、存储内容的不同栈主
2015-04-05 15:43:17
340
转载 堆和栈以及静态存储区分配时机的不同
按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.栈式存储分配也可称为动态存储分配,是由
2015-04-05 15:25:54
744
原创 静态方法的内部类
错误提示:No enclosing instance of type MultiThread is accessible. Must qualify the allocation with an enclosing instance of type MultiThread(e.g. x.new A() where x is an instance of MultiThread)。翻译:翻
2015-02-02 10:42:27
514
原创 java中的作用域
java中的作用域包括public、protected、private和默认。其中可以肯定的是public是对所有的类都可以访问,作用域为整个工程。private只能在同一个class里面可见,其作用域为类内部。但是protected和默认的比较容易搞混,protected的作用域为同一个包内的所有类和外部包的子类。对于同一包内不论是不是子孙类,都可以访问到protected类型的
2015-01-31 10:34:07
992
转载 计算机中负数的表示方法
原码:将一个整数,转换成二进制,就是其原码。如单字节的5的原码为:0000 0101;-5的原码为1000 0101。反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。如单字节的5的反码为:0000 0101;-5的原码为1111 1010。补码:正数的补码就是其原码;负数的反码+1就是补码。如单字节的5的补码为:0000 0101;-5的原码为1111
2014-11-22 14:42:31
4904
转载 java中断言的使用
理解和正确使用Java中的断言(assert)一、语法形式: Java2在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion),它的语法形式有如下所示的两种形式:1、assert condition; 这里condition是一个必须为真(true)的表达式。如果表达式的结果为true,那么断言为真,并且无任何行动
2014-11-15 11:21:52
2361
转载 java中的静态内部类
两种内部类Java的内部类有两种,一种是静态内部类,另一种是普通内部类,普通内部类可以获得外部对象的引用,所以在普通内部类能够访问外部对象的成员变量 ,也就能够使用外部类的资源,可以说普通内部类依赖于外部类,普通内部类与外部类是共生共死的,创建普通内部类的对象之前,必须先创建外部类的对象。创建普通内部类的代码如下:Outer o = new Outer();
2014-11-14 23:06:12
300
转载 java中的动态绑定和静态绑定
public class TestOverwrite { public static void main(String []args){ Father father = new Son(); Son son = new Son(); father.show(son); //s
2014-11-14 09:24:30
384
转载 java中只有值传递,没有引用传递
今天,我在一本面试书上看到了关于java的一个参数传递的问题:写道java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这一特性很是熟悉!结果发现,我错了!答案是:值传递!Java中只有按值传递,没有按引用传递! 回家后我就迫不及待地查询了这个问题,觉得自己对j
2014-11-13 11:40:51
290
android应用开发详解 源码(全2-18)
2014-05-16
Android开发不能够完成Activity之间的跳转
2014-09-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人