【Java深入知识】
文章平均质量分 66
onisland
这个作者很懒,什么都没留下…
展开
-
Java堆和栈的区别
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等转载 2010-08-02 18:04:00 · 529 阅读 · 0 评论 -
Java中基本输入输出流的解释
<br />网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节。字节就是字节,在很大程度上,读服务器发送的数据与读取文件没什么不同;向客户传送数据与写入一个文件也没有什么区别。<br />Java中输入和输出组织不同于大多数其他语言。它是建立在流(stream)上。不同的基本流类(如java.io.FileInputStream和sun.net.TelnetOutputStream)用于读写特定的数据资源。但是所有的基本输出流使用同一种基本方法读数据。<br />过滤器流可以连接到输入流转载 2010-08-24 18:25:00 · 1060 阅读 · 0 评论 -
粗粒度与细粒度
<br />粗粒度和细粒度的区别主要是出于重用的目的,像类的设计,为尽可能重用,所以采用细粒度的设计模式,将一个复杂的类(粗粒度)拆分成高度重用的职责清晰的类(细粒度).对于数据库的设计,原责:尽量减少表的数量与表与表之间的连接,能够设计成一个表的情况就不需要细分,所以可考虑使用粗粒度的设计方式.<br /> <br />简单点,给你两个接口,你看看<br />细粒度的查询任务的接口<br />interface TaskService{<br /> public List getTaskById(int原创 2010-08-19 13:24:00 · 11803 阅读 · 1 评论 -
HttpSession和Hibernate里的Session的区别
<br />HttpSession和Hibernate里的Session的区别。 <br />他们是完全不同的2个对象 <br /> <br />javax.servlet.http.HttpSession是一个抽象接口 <br /> <br />它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户身份的唯一表示。注意,是容器(Tomcat,Resin)自动创建的。 <br /> <br />用途:存放这个用户的一些经常被用到的信息,例如:转载 2010-08-17 10:43:00 · 729 阅读 · 0 评论 -
java虽然有垃圾回收机制,还是有内存泄漏现象的
<br />其实java有内存泄漏现象<br />垃圾回收机制只能回收没有引用的对象,也就是说只能回收没有“指针”的对象,对于非引用类对象,垃圾回收机制就不能起作用<br />比如说,如果打开过多的数据库连接,那么这些不能被垃圾回收机制所处理。由于一般情况下很少有人打开过多的数据库连接,所以很少有人注意到这一点。<br />还有一种可能就是死循环也会出现内存泄漏,但是不是所有的死循环都会出现内存泄漏现象。对ArrayList操作的时候才有可能出现,<br />比如说<br />ArrayList resul转载 2010-08-17 10:58:00 · 694 阅读 · 0 评论 -
线程的阻塞 sleep() wait() yield()
<br />转自:http://blog.csdn.net/peijunlin/archive/2008/12/20/3564559.aspx<br />为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。为了解决这种情况下的访问控制问题,Java 引入了对阻塞机制的支持。<br /><br /> 阻塞指的是暂停一个线程的执行以等转载 2010-08-13 17:11:00 · 618 阅读 · 0 评论 -
类的实例化顺序
/* * Customer.java */public class Customer { int t; public Customer(){ System.out.println("调用Customer的无参构造方法"); } static{ System.out.println("Customer 的静态初始化块"); } }import java.io.*;public class Customer3 extends Custome原创 2010-08-13 11:37:00 · 4847 阅读 · 1 评论 -
为什么匿名内部类和局部内部类只能访问final变量
<br /> 是变量的作用域的问题,因为匿名内部类是出现在一个方法的内部的,如果它要访问这个方法的参数或者方法中定义的变量,则这些参数和变量必须被修饰为final。因为虽然匿名内部类在方法的内部,但实际编译的时候,内部类编译成Outer.Inner,这说明内部类所处的位置和外部类中的方法处在同一个等级上,外部类中的方法中的变量或参数只是方法的局部变量,这些变量或参数的作用域只在这个方法内部有效。因为编译的时候内部类和方法在同一级别上,所以方法中的变量或参数只有为final,内部类才可以引用。 <br /转载 2010-08-12 18:03:00 · 20859 阅读 · 3 评论 -
再说final变量
<br />从jdk1.0到今天,JAVA技术经过十余年的发展,技术上已经发生了巨大的变化.但final变量的定义从它<br />诞生那天起,就没有发生任何变化,也就是这十多年它就一直表示它原来的意思.<br />但遗憾的是,经过十多年仍然有90%的人没有理解它的真实含义,也没有一篇文章,包括我所见到的所有介绍<br />JAVA的书籍(包括TKJ)都没有说清楚,我相信肯定有些作者是理解的,但没有一个作者向读者说清楚.而中国网友<br />大多数人被一篇胡说八道的<<浅谈Java中final,finaliz转载 2010-08-12 18:16:00 · 899 阅读 · 0 评论 -
Java 移位操作
移位操作要注意的问题是高(低)位是补0还是补1和对char, byte, short型的操作:<br />(1)<< : (left-shift), 最低位补0<br />(2)>> : (signed right-shift), 右移过程使用符号位扩展(sign extension),即如果符号为为1则高位补1, 是0则补0,也就是逻辑右移<br />(3)>>> : (unsigned right-shit),右移过程使用零扩展(zero extension),即最高位一律补0,也就是算术右移<br原创 2010-08-12 11:39:00 · 583 阅读 · 0 评论 -
java知识点总结(==和equals,对象克隆clone等)
<br />1、Java常用包<br />n java.applet:包含一些用于创建Java小应用程序的类。<br />n java.awt:包含一些用于编写与平台无关的图形界面(GUI)应用程序的类。<br />n java.io:包含一些用作输入输出(I/O)处理的类。<br />n java.lang:包含一些Java语言的基本类与核心类,如String、Math、Integer、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导转载 2010-08-11 14:06:00 · 749 阅读 · 0 评论 -
JAVA反射机制作用
<br />一、什么是反射:<br />反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。<br />反射本身并不是一个新概念,尽管计算机科学赋予了反射概念新的转载 2010-08-10 18:05:00 · 631 阅读 · 0 评论 -
两个大数相加比较符合自然运算的算法
功能很简单,就是实现两个很长的大数相加的功能<br /> 1public static string MaxNumAdd(string num1, string num2)<br /> 2 {<br /> 3 //初始设置进位为0<br /> 4 int carry = 0;<br /> 5 int length1 = num1.Length;<br /> 6 int length2 = num2.Leng转载 2010-08-10 16:41:00 · 709 阅读 · 0 评论 -
全面解析Java中的String数据类型
<br />1. 首先String不属于8种基本数据类型,String是一个对象。 <br /><br />因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 <br /><br />2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; <br /><br />3. String str=”kvill”; <br /><br />String str=new String (“kvill”转载 2010-08-05 18:23:00 · 537 阅读 · 0 评论 -
JAVA中的指针,引用及对象的clone
<br />2002 年 12 月 23 日 Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。看到这个标题,是不是有点困惑:Java语言明确说明取消了指针,因为指针往往是在带来方便的同时也是导致代码不安全的根源,同时也会使程序的变得非常复杂难转载 2010-08-02 19:57:00 · 657 阅读 · 0 评论 -
Java内部类和匿名类
<br />提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实转载 2010-08-17 10:40:00 · 649 阅读 · 0 评论