随笔分类 -  “拾人牙慧”系列之Java

1 2 下一页

该系列是从个人的笔记中整理出来,大多内容是各处摘抄来的还有少部分个人理解。但以前记笔记没想过写博客,也就没记出处,所以有冒犯原作者和各位园友之处,还请见谅,同时所写文档也会标明为转载。
Java中网络编程基础知识(转载/整理)(二)
摘要:如何使服务器端支持多个客户端同时工作? 一个服务器端一般都需要同时为多个客户端提供通讯,如果需要同时支持多个客户端,则必须使用前面介绍的线程的概念。简单来说,也就是当服务器端接收到一个连接时,启动一个专门的线程处理和该客户端的通讯。 客户端的程序不需要改变,不过还是贴出来import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;public class MulSocket 阅读全文

posted @ 2013-04-18 15:50 夜月升 阅读(305) 评论(0) 推荐(0)

Java中网络编程基础知识(转载/整理)(一)
摘要:转自JAVA的网络编程【转】 IP地址和域名很好的解决了在网络中找到一个计算机的问题,但是为了让一个计算机可以同时运行多个网络程序,就引入了另外一个概念——端口(port)。 在介绍端口的概念以前,首先来看一个例子,一般一个公司前台会有一个电话,每个员工会有一个分机,这样如果需要找到这个员工的话,需要首先拨打前台总机,然后转该分机号即可。这样减少了公司的开销,也方便了每个员工。在该示例中前台总机的电话号码就相当于IP地址,而每个员工的分机号就相当于端口。 有了端口的概念以后,在同一个计算机中每个程序对应唯一的端口,这样一个计算机上就可以通过端口区分发送给每个端口的数据了,换句话说,也就是一个. 阅读全文

posted @ 2013-04-18 09:38 夜月升 阅读(321) 评论(0) 推荐(0)

Java变量初始化讨论(转载)
摘要:类成员如果没有被初始化会自动获取一个初始值,也称为默认值,例:public class InitialValues { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub DefaultValues values = new DefaultValues(); System.out.println("boolean: "+values.bl); System.out.pri... 阅读全文

posted @ 2013-04-17 15:15 夜月升 阅读(310) 评论(0) 推荐(0)

Java中的泛型(转载/整理)
摘要:泛型的介绍——详细出处参考http://liyanblog.cn/articles/2012/11/01/1351757228794.html 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候. 阅读全文

posted @ 2013-03-29 17:04 夜月升 阅读(441) 评论(0) 推荐(0)

Java中的String、StringBuilder,StringBuffer简析
摘要:JAVA中用于处理字符串常用的有三个类:java.lang.String、java.lang.StringBuffer、java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用。StringBuffer与StringBuilder两个基本上差不多,只是StringBuffer是线程安全,可以不需要额外的同步用于多线程中;StringBuilder是非同步,运行于多线程中就需要使用着单独同步处理,但是速度就比StringBuffer快多了;二者之间的 阅读全文

posted @ 2013-03-23 08:59 夜月升 阅读(265) 评论(0) 推荐(0)

编写Java代码一些注意点
摘要:1. 尽量指定类的final修饰符,指定一个类的final,则类中的方法都为final。Java编译器会尽量内联(inline)所有的final方法,内联能使性能提高。2. 尽量使用局部变量,调用方法时传递的参数及调用时创建的临时变量都保存在栈中,存取速度快。(静态变量、实例变量都在堆上创建,速度慢)3. 在进行Java的数据库连接和I/O流操作时,应及时关闭不需要的连接或流以释放资源。4. 减少对变量的重复计算,例:for(int i=0; i<list.size(); i++){}应改写成for(int i=0, len=list.size(); i<len; i++){}5. 阅读全文

posted @ 2013-03-22 17:22 夜月升 阅读(183) 评论(0) 推荐(0)

Java中的方法绑定及多态(转载/整理)
摘要:转自http://blog.csdn.net/uyu2yiyi/article/details/6226595程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。静态绑定: 在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。 针对java简单的可以理解为程序编译期的绑定;这里特别说明一点,java当中的方法只有final,static,private和构造方法和用super关键字调用的方法是前期绑定。动态绑定: 后期绑定:在运行时根据具体对象的类型进行绑定。 若一种语言实现了后 阅读全文

posted @ 2013-03-21 15:35 夜月升 阅读(297) 评论(0) 推荐(0)

Java中的final关键字(转载/整理)
摘要:转自http://blog.csdn.net/iostream123/article/details/5979635【java中为什么会有final变量】: final这个关键字的含义是“这是无法改变的”或者“终态的”;那么为什么要阻止改变呢? java语言的发明者可能由于两个目的而阻止改变: 1).效率问题: jdk中的某些类的某些方法,是不允许被用户覆盖的,设计者可能认为,所用方法已经是最好的方法,用户私自覆盖,或是由于疏忽而覆盖,就会影响JVM或是系统的系能; 2). 设计所需: 众所周知,有些情况必须使用final关键字,比如方法中的匿名内部类的参数传递;【final关键字的使用方法】 阅读全文

posted @ 2013-03-21 14:31 夜月升 阅读(199) 评论(0) 推荐(0)

Java中的数组(转载/整理)
摘要:转自http://hi.baidu.com/vip_qining/item/7638e85d1d8a4a0adb16355a数组的声明格式里,数据类型是数组元素的数据类型,常见的有整形、浮点型、与字符型等;数组名是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同;数组声明后实际上是在栈内存中保存了此数组的名称,结下了是要在堆内存中配置数组所需要的内存,齐产固定是告诉编译器,所声明的数组要存放多少个元素,而new 则是命令编译器根据括号里的长度开辟数组空间,例:数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内的空间,数组是永远无法使用的,必须有指向的对内存才可以使用,要想开辟 阅读全文

posted @ 2013-03-21 11:20 夜月升 阅读(170) 评论(0) 推荐(0)

java中JAVA_HOME、PATH及CLASSPATH解析(转载/整理)
摘要:转自详解Javahome 与 Path 与ClassPath的含义 (转)1、首先搞明白内部命令与外部命令的区别 在学习编程过程中经常遇到这样的概念: 内部命令 启动后是常住内存的。 用dos的时候内存都比较小,非常贵,而内部命令启动后是常住内存的。 外部命令 内部直接打就可以执行,外部得进到命令所在的目录或者设置环境变量才可以执行. 在java开发中设置的环境变量就解决这个问题的2、环境变量的含义(注意:java环境变量设置不分大小写)1、java_home(不分大小写),其实这是保存你的jdk安装的路径, (这主要是在路径设置时,使其更为直观和方便,使用%%可以实现对其的逆解析) 例如:D 阅读全文

posted @ 2013-03-18 11:29 夜月升 阅读(662) 评论(0) 推荐(0)

Java中重载和覆盖的区别
摘要:重载和覆盖:重载具有不同的方法签名,可以在同一个类中,也可以分布在继承链中的任何一个类,一般执行相同的运算和操作;覆盖具有相同的方法签名,必须在继承链的不同类中,一般执行不同的运算和操作。方法签名包括:方法名称和一个参数列表(方法的参数的顺序和类型)。返回类型和参数名不属于方法签名。注意:子类中参与覆盖的方法的访问权限必须高于或相当于超类中被覆盖的方法的访问权限,否则语法错误。 阅读全文

posted @ 2013-03-10 16:56 夜月升 阅读(384) 评论(0) 推荐(0)

Java中的值传递和引用传递(转载/整理)
摘要:转自Java中的值传递和引用传递Java参数,不管是原始类型还是引用类型,传递的都是副本(有另外一种说法是传值,但是说传副本更好理解吧,传值通常是相对传址而言)。 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的。如果在函数中改变了副本的 值不会改变原始的值. 如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。如果在函数中没有改变这个副本的地址,而是改变了地址指向的内容的的值,那么在函数内的改变会影响到传入的参数。如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传 阅读全文

posted @ 2013-03-10 16:24 夜月升 阅读(167) 评论(0) 推荐(0)

java中的import语句(转载/整理)
摘要:import导入声明可分为两种: 1> 单类型导入(single-type-import) 例:import java.util.ArrayList; 2> 按需类型导入(type-import-on-demand) 例:import java.util.*; 以这样两种方式导入包中的任何一个public的类和接口(只有public类和接口才能被导入)。 导入声明仅导入类型而不导入子包;这就是为什么称它们为单类型导入和按需类型导入声明的原因。 导入的类或接口的简名(simple name)具有编译单元作用域.这表示该类型(类或接口)简名可以在导入语句所在的编译单元的任何地方使用。这 阅读全文

posted @ 2013-03-10 11:21 夜月升 阅读(1000) 评论(0) 推荐(0)

什么是回调函数?(转载/整理)
摘要:CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了。"回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)是非常必要的。 那么什么是回调函数呢?我认为,回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机。这里有两点需要注意:第一点,我们写回调函数不是给自己调用的,而是准备给系统在将来某一时刻调用的;第二点,我们应该知道系统在什么情形下会调用我们写的回调函数 阅读全文

posted @ 2013-03-08 09:38 夜月升 阅读(224) 评论(0) 推荐(0)

什么是JAVA本地方法?(转载)
摘要:转自http://blog.csdn.net/lansine2005/article/details/5753741一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。 "A native method is a Java method whose implem 阅读全文

posted @ 2013-03-07 23:22 夜月升 阅读(194) 评论(0) 推荐(0)

JVM垃圾回收策略(转载/整理)
摘要:垃圾回收提供了内存管理的机制,使得应用程序不需要在关注内存如何释放,内存用完后,垃圾收集会进行收集,这样就减轻了因为人为的管理内存而造成的错误,比如在C++语言里,出现内存泄露时很常见的。Java语言是目前使用最多的依赖于垃圾收集器的语言,但是垃圾收集器策略从20世纪60年代就已经流行起来了,比如Smalltalk,Eiffel等编程语言也集成了垃圾收集器的机制。 GC就是负责在对象“不可达”的时候将对象回收,常见的语句例如:Object o = null; 而GC本身是如何工作的呢?当系统在创建对象的时候,即当我们使用new关键字创建一个对象的时候,GC就开始监控对象的地址、大小以及... 阅读全文

posted @ 2013-02-04 13:53 夜月升 阅读(1070) 评论(0) 推荐(0)

Java数据类型
摘要:Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA 阅读全文

posted @ 2013-02-04 12:42 夜月升 阅读(143) 评论(0) 推荐(0)

Java中的几种引用类型(转载)
摘要:转自http://blog.csdn.net/silentbalanceyh/article/details/4468368Java中的对象引用主要有以下几种类型: 1)强可及对象(strongly reachable): 可以通过强引用访问的对象,一般来说,我们平时写代码的方式都是使用的强引用对象,比如下边的代码段: StringBuilder builder= new StringBuilder(); 上边代码部分引用obj这个引用将引用内存堆中的一个对象,这种情况下,只要obj的引用存在,垃圾回收器就永远不会释放该对象的存储空间。这种对象我们又成为强引用(Strong refer... 阅读全文

posted @ 2013-02-04 12:11 夜月升 阅读(226) 评论(0) 推荐(0)

Java对象的生命周期(转载)
摘要:转自http://blog.csdn.net/silentbalanceyh/article/details/4468368Java里面对象的生命周期 在JVM运行空间里面,对象整个声明周期大致分为以下几个阶段: 创建阶段(Creating)->应用阶段(Using)->不可视阶段(Invisible)->不可达阶段(Unreachable)->可收集阶段(Collected)->终结阶段(Finalized)->释放阶段(Free) 【1】创建阶段: 创建过程需要经过其中几步: 为对象分配内存空间 开始构造对象 递归调用超类的构造方法 进行对象实例初始化和 阅读全文

posted @ 2013-02-04 12:10 夜月升 阅读(204) 评论(0) 推荐(0)

JVM中堆和栈(转载/整理)
摘要:JVM的内存有很重要的两部分就是堆heap和栈stack(这句是废话)。 Stack(栈)是JVM的内存指令区。Stack管理很简单,push一定长度字节的数据或者指令,Stack指针压栈相应的字节位移;pop一定字节长度数据或者指令,Stack指针出栈。Stack的速度快,管理简单,并且每次操作的数据或者指令字节长度和生存期是已知的。所以Java 基本数据类型,Java 指令代码,常量都保存在Stack中。 Heap(堆)是JVM的内存数据区。Heap 的管理复杂,每次分配不定长的内存空间,专门用来保存对象的实例。在Heap 中分配一定的内存来保存对象实例,实际上也只是保存对象实例的属... 阅读全文

posted @ 2013-02-03 16:20 夜月升 阅读(680) 评论(0) 推荐(0)

1 2 下一页

导航