飘飞的海

 

随笔分类 -  Java

Static的作用Java
摘要:static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。static变量前可以 阅读全文

posted @ 2012-09-29 16:51 飘飞的海 阅读(207) 评论(0) 推荐(0)

Class类理解
摘要:一、使用原因Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。二、Class的特点1、Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。2、虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class 阅读全文

posted @ 2012-09-25 11:48 飘飞的海 阅读(258) 评论(0) 推荐(0)

反射机制
摘要:一、定义JAVA反射机制是在运行状态中:1)对于任意一个类,都能够知道这个类的所有属性和方法;2)对于任意一个对象,都能够调用它的任意一个方法。这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。二、提供的功能:1)在运行时判断任意一个对象所属的类;2)在运行时构造任意一个类的对象;3)在运行时判断任意一个类所具有的成员变量和方法;4)在运行时调用任意一个对象的方法;5)生成动态代理。三、使用的原因1、扩展未知的应用。比如你写了一个程序,这个程序定义了一些接口,只要实现了这些接口的dll都可以作为插件来插入到这个程序中。那么怎么实现呢?就可以通过反射来实现。就是把dll加 阅读全文

posted @ 2012-09-24 17:51 飘飞的海 阅读(162) 评论(0) 推荐(0)

Java对象初始化顺序
摘要:一、无继承情况静态变量、初始化块→非静态变量、初始化块→构造函数示例:Base类class Base{ public static String baseStaticStr="静态变量"; { System.out.println("Base.非静态初始化块()"); } static{ System.out.println("Base."+baseStaticStr); System.out.println("Base.静态初始化块()"); } public Base() { // TODO Aut... 阅读全文

posted @ 2012-09-24 16:08 飘飞的海 阅读(171) 评论(0) 推荐(0)

最长回文(找出字符串中对称的子字符串的最大长度)
摘要:所谓对称子字符串,就是这个子字符串要么是以其中一个词对称:比如 “aba”, “abcba”;要么就完全对称:比如"abba", "abccba"。思路:首先,我们用字符数组 char[] array 来保持这个字符串,假设现在已经遍历到第 i 个字符,要找出以该字符为“中心”的最长对称字符串,我们需要用另两个指针分别向前和向后移动,直到指针到达字符串两端或者两个指针所指的字符不相等。因为对称子字符串有两种情况,所以需要写出两种情况下的代码:1. 第 i 个字符是该对称字符串的真正的中心,也就是说该对称字符串以第 i 个字符对称, 比如: “aba”。代 阅读全文

posted @ 2012-09-21 17:23 飘飞的海 阅读(269) 评论(0) 推荐(0)

Socket通信常见异常
摘要:第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。此时用netstat –an命令,可以看到一个Listending状态的端口。只需要找一个没有被占用的端口就能解决这个问题。第 2个异常是java.net.ConnectException: Connection refused: connect。该异常发生在客户端进行new Socket(ip 阅读全文

posted @ 2012-09-20 15:50 飘飞的海 阅读(1765) 评论(0) 推荐(0)

Eclipse中常用快捷键
摘要:Ctrl+Shift+r:打开资源让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。Ctrl+o:快速outline它可以列出当前类中的所有方法及属性,你只需输入你想要查询的方法名,点击enter就能够直接跳转至你想去的位置。Ctrl+e:快速转换编辑器 这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡,但是在很多文件打开的状态下,ctrl+e会更加有效率。Alt+Shift+r:重命名如果你重命名的是类中的一个属性, 阅读全文

posted @ 2012-09-20 15:49 飘飞的海 阅读(288) 评论(0) 推荐(0)

Java中Thread的start和run方法的区别
摘要:1、start() 方法启动线程,该线程进入就绪队列,不是线程马上执行,它需要等待CPU进程调度机制。2、run() 是表示线程的运行,是线程对象的一个方法,里面是具体的线程实现逻辑,所以一个线程调用start() 方法后是否执行到run方法看CPU调度到该线程没。3、如果使用线程对象直接调用run方法,相当于调用了一个普通方法,并没有启动该线程。程序中还是只有线程对象所在的线程,并没有增加新的线程。如下例子说明调用这两个方法后的区别:A、线程类class MyThread implements Runnable{ @Override public void run() { ... 阅读全文

posted @ 2012-09-20 15:10 飘飞的海 阅读(207) 评论(0) 推荐(0)

导航