随笔分类 -  Java

摘要:String类 1、String对象的初始化由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”; 其实按照面向对象的标准语法,其格式应该为: String s = new String(“abc”); s = new String(“Java语言”);只是按照面向对象的标准语法,在内存使用上存在比较大的浪费。例如String s = new String(“abc”);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象s 阅读全文
posted @ 2011-11-17 14:34 hnrainll 阅读(302) 评论(0) 推荐(0)
摘要:最近在阅读 《Inside the JVM》 这本书,结合一些日常工作学习中的感想,随便写一些东西,蜻蜓点水,不必有章法。 关于“单例同步”: 一直有人在问单例对象的并发调用是否需要同步,基本属于“月经帖”了,答案是现成的满天下都是,但真正能让人心里踏实下来的解释寥寥无几。实际上,只要学习了一些JVM的运行原理,解释这个问题就不难了。 如果一个类是单例的,比如某些DAO的设计,那么所有的线程来访问这个类的实例的时候,它们获得的都将是同一个对象,这是不言自明的。如果这些线程的当前 操作是“互斥”的,那么每个线程就必须在取得该实例的访问资格的时候为该对象上锁,以独享该对象直到当前操作结... 阅读全文
posted @ 2011-11-15 10:24 hnrainll 阅读(451) 评论(0) 推荐(0)
摘要:[例程]Java 泛型1class Gen<T> { private T ob; //定义泛型成员变量 //构造方法 public Gen(T ob){ this.ob = ob; } public T getOb() { return ob; } //打印T实际的类型 public void showType() { System.out.println("T的实际类型是: " + ob.getClass().getName()); }}public class Test{... 阅读全文
posted @ 2011-11-13 19:55 hnrainll 阅读(319) 评论(0) 推荐(0)
摘要:J2SE 1.5 - 代号为 Tiger - 计划在 2003 年年底发布。我一直都热衷于尽可能多地收集有关即将推出的新技术的预告信息,因此我将撰写一系列的文章,讨论可从 V1.5 中获得的新的和经过重组的特性,本文是第一篇。我特别想谈谈泛型类型并重点讲述在 Tiger 中为了支持它们而进行的更改和调整。在许多方面,Tiger 肯定是迄今为止在 Java 编程方面(包括对源语言语法的重大扩展)所取得的最大进步。Tiger 中计划进行的最显著的变化是添加泛型类型,正如在 JSR-14 原型编译器中所预先展示的那样(您可以立即免费下载该编译器;请参阅 参考资料)。让我们从介绍泛型类型是什么以及添加 阅读全文
posted @ 2011-11-13 19:54 hnrainll 阅读(531) 评论(0) 推荐(0)
摘要:foreach语句使用总结foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。foreach的语句格式:for(元素类型t 元素变量x : 遍历对象obj){ 引用了x的java语句;}下面通过两个例子简单例子看 阅读全文
posted @ 2011-11-13 17:50 hnrainll 阅读(93932) 评论(3) 推荐(1)
摘要:本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导:(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写( 阅读全文
posted @ 2011-11-13 15:44 hnrainll 阅读(281) 评论(0) 推荐(0)
摘要:String类 1、String对象的初始化由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s = “Java语言”; 其实按照面向对象的标准语法,其格式应该为: String s = new String(“abc”); s = new String(“Java语言”);只是按照面向对象的标准语法,在内存使用上存在比较大的浪费。例如String s = new String(“abc”);实际上创建了两个String对象,一个是”abc”对象,存储在常量空间中,一个是使用new关键字为对象s 阅读全文
posted @ 2011-11-13 14:42 hnrainll 阅读(324) 评论(0) 推荐(0)
摘要:先运行服务器,再运行客户端时得到服务器发送到的hello world!信息.服务器代码:import java.io.*;import java.net.*;public class HelloServer{ public static void main(String args[]) throws IOException { ServerSocket serverSocket = null; PrintWriter out = null; try{ serverSocket = new ServerSocket(99... 阅读全文
posted @ 2011-10-18 08:59 hnrainll 阅读(453) 评论(0) 推荐(0)
摘要:@Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1>可以当注释用,方便阅读 2>编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错 比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法) 使用该标记是为了增强程序在编译时候的检查,如果该方法并不是一个覆盖父类的方法,在编译时编译器就会报告错 阅读全文
posted @ 2011-10-17 11:05 hnrainll 阅读(100226) 评论(1) 推荐(7)
摘要://声明Hello接口interface Hello { public void sayhello();}//声明World接口interface World{ public void sayworld();}//定义类Student,继承Hello,World接口class Student implements Hello,World{ //复写两个接口 public void sayhello() { System.out.print("hello"); } public void sayworld() { Sys... 阅读全文
posted @ 2011-10-11 22:06 hnrainll 阅读(628) 评论(0) 推荐(0)
摘要:JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口 阅读全文
posted @ 2011-10-11 21:18 hnrainll 阅读(49697) 评论(4) 推荐(10)
摘要:1. 方法重载与方法复写的区别区别方法重载方法复写英文单词OverloadingOverride概念方法名称相同,参数的个数或者类型不同方法名称相同,参数的个数和类型相同,方法的访问权限不能更严格使用范围发生在同一个类中发生在继承关系中,是由子类进行复写2. super与this的比较比较superthis使用范围是由子类访问父类中的内容是直接访问本类中的内容访问属性时的格式super.父类属性, 如果属性没有被复写,则也可以不写superthis.本类属性访问方法时的格式super.父类方法(),如果父类方法没有被复写,则可以不写super也表示调用父类中的方法this.本类方法(),可以不 阅读全文
posted @ 2011-10-11 17:53 hnrainll 阅读(9347) 评论(1) 推荐(1)
摘要:在面向对象开发程序中会出现重载与复写这二个概念那么他们的区别是什么呢1.从概念上面来讲重载: 方法名称相同,参数类型 个数不同复写:方法名称相同,权限尽量相同,参数类型个数相同2.从范围上面来讲重载:出现在同一个类当中复写:出现在继承关系中本文出自 “38°仰望” 博客,请务必保留此出处http://suxiangjuner.blog.51cto.com/353064/199449 阅读全文
posted @ 2011-10-11 17:39 hnrainll 阅读(1484) 评论(0) 推荐(0)
摘要:JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。 JDK包含的基本组件包括: 阅读全文
posted @ 2011-10-11 09:19 hnrainll 阅读(419640) 评论(27) 推荐(39)
摘要:转自:http://hi.baidu.com/clebean/blog/item/cdab34da86055ed7b7fd482d.html 仅供参考!在开始之前有必要再讨论一下J2ME,J2SE,J2EE这些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手机,PDA等等。J2SE,Java 2 Platform,Standard Edition,我们通常所说的JDK(Java Development Kit)包含在此,是J2EE的基础。J2EE,Java 2 Platform,Enterprise Edition, 阅读全文
posted @ 2011-09-30 07:07 hnrainll 阅读(4656) 评论(0) 推荐(0)
摘要:从网上发现这篇文章,发现和我写的一篇关于《知识体系》的文章互相呼应,就转过来了。转自:http://tieba.baidu.com/f?kz=692446591怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西: 首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of. 阅读全文
posted @ 2011-09-30 06:56 hnrainll 阅读(753) 评论(0) 推荐(0)
摘要:问HelloWorld问题的人实在是太多了,而且经常都以“问一个最简单的问题”开头。其实回想一下,自己也是从这个阶段过来的,说一句“你好”,真的是一个最简单的问题吗?...//think 好了,言归正传,let's say "HelloWorld!" in java... 首先,我们要假设一下我们的平台是Windows+JDK(Linux环境下也差不多)。这个环境是相当普遍、基础和入门的。确定已经正确安装JDK了,下一步是小心翼翼地敲入某本教程上的HelloWorld源码,存盘,然后编译,javac ...问题来了: * 错误1: 'javac' 不 阅读全文
posted @ 2011-09-24 15:00 hnrainll 阅读(599) 评论(0) 推荐(0)
摘要:Most people always have the following problem when run their java programs under linux box:Exception in thread "main" java.lang.NoClassDefFoundError: *.javaEven though these programs really have no problem at all.Here are some solutions for you:1) Check your syntax that you are trying to r 阅读全文
posted @ 2011-09-23 18:37 hnrainll 阅读(477) 评论(0) 推荐(0)