
JAVA初步
chatget
这个作者很懒,什么都没留下…
展开
-
枚举和静态导入
枚举,里面的值就是枚举类型的,枚举里面也是可以定义main方法的.public enum Color{Red,White,Blue,Blace}表明Color这个枚举类型它有四个对象,而且只有四个,在编译的时候就已经确定好的了.我们不能在运行的时候又去产生出新的枚举对象.我们所定义的每个枚举类型都继承自java.lang.Enum类,它也可以有成员变量,有构造方法,而在编译的时候就已经确定好的了,那如何传,就用penny("hello"),nickel("world")这样去传.即在枚举里面它所定义的对象就原创 2011-05-10 12:00:00 · 2000 阅读 · 0 评论 -
浅克隆和深克隆
•浅复制与深复制概念–浅复制(浅克隆):被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。–深复制(深克隆):被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。Java的clone()方法【定义在Object类中】–clone方法将对象复制了一份并返回原创 2011-05-17 14:49:00 · 1644 阅读 · 0 评论 -
java网络编程
<br />这里主要就是两个方面,一个是基于TCP的网络编程,还有一个就是基于UDP的网络编程,<br />为什么会这样编写程序呢?因为是要基于这些的协议来编写程序嘛原创 2011-05-21 23:22:00 · 356 阅读 · 0 评论 -
关于图形中的AWT和Swing中的图形的画和图形的写
<br />关于图形中的AWT和Swing中的图形的画和图形的写原创 2011-05-24 20:00:00 · 443 阅读 · 0 评论 -
正则表达式
//TODO原创 2011-06-03 10:31:00 · 571 阅读 · 0 评论 -
Arrays类解析及数组
1,对于两个数的交换有两种方式a方式:使用中间变量代码如下:public void Test{ public static void main(String[] args){ int a=1; int b=2; int temp=a; a=b; b=temp; }}b方式:类似于脑筋急转弯public void Test{ public static void main(String[] arg原创 2011-04-20 11:49:00 · 419 阅读 · 0 评论 -
冒泡排序
public class SortTest{ public static void sort(int[] a){ for(int i=0;i for(int j=0;j if(a[j]>a[j+1]){ int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } public static void main(String[] args){ int[] a=new int[]{3,1,5,4,7}; sort(a);原创 2011-04-20 23:11:00 · 311 阅读 · 0 评论 -
二分查找
二分查找:待查找的是有序的.1,3,4,5,6,7,8,12,15,16,19,22,23,25,27如要查找25拿中间的来比较,如在这里是12比较,那么前面一半就排除掉了.然后再这样.如果是奇数,取中间,如果是偶数个,那么取随便取两个都可以.public class BinarySearch{ public static int search(int[] i,int value){ //1.首先要找到要比较的下标值,肯定是最大的加上最小的/2 int low=0; int high=i.length原创 2011-04-20 23:07:00 · 509 阅读 · 0 评论 -
快速排序
基本思想 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 实际上快速排序也是交换排序的一种,因为他关涉到了很多的交换.过程如下: 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比原创 2011-05-05 23:29:00 · 322 阅读 · 0 评论 -
集合1
上面为集合框架图,首先看List,它有LinkedList和ArrayList,前者在它的底层是通过一个双向循环链表实现的,可以通过看它的底层代码,而ArrayList是通过数组来实现的,首先从它的构造方法去进行了解,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型数组 如果增加的元素个数超过了10个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数原创 2011-05-07 21:28:00 · 571 阅读 · 0 评论 -
多线程
主要框架内容:线程概念,线程的生命周期,线程的实现,线程的优先级,多线程的同步,线程组1.什么是线程:线程就是程序中单独顺序的流控制。线程本身不能运行,它只能用于程序中。2. 什么是多线程:多线程则指的是在单个程序中可以同时运行多个不同的线程执行不同的任务.说明:线程是程序内的顺序控制流,只能使用分配给程序的资源和环境,线程一旦运行,就不能控制了.没法控制谁先执行,怎么交叉执行多线程编程的目的,就是"最大限度地利用CPU资源",当程序启动运行时,就自动产生一个线程,主方法main就在这个主线程上运行线程的实原创 2011-05-17 15:31:00 · 489 阅读 · 0 评论 -
图形GUI之AWT
GUI全称是Graphical User Interface,即图形用户界面。根据作用GUI组件可分为基本组件和容器。组件又称构件,诸如按钮、文本框之类的图形界面元素容器其实是一种比较特殊的组件,可以容纳其它组件,如窗口、对话框等所有的容器类都是java.awt.Container的直接或间接子类。AWT(Abstract Window Toolkit),抽象窗口工具包,SUN公司提供的用于图形界面编程(GUI)的类库。基本的AWT库处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台上(Win原创 2011-05-14 10:05:00 · 595 阅读 · 0 评论 -
io3
字符流:字符流层次结构的顶层是Reader 和Writer 抽象类。Reader类层次结构:它同样也是用了装饰模式的.Writer类层次结构:InputStreamReader和OutputStreamWriter这两个类是java.io包中用于处理字符流的基本类,用来在字节流和字符流之间搭一座“桥”。这里字节流的编码规范与具体的平台有关,可以在构造流对象时指定规范,也可以使用当前平台的缺省规范桥的作用通过它们的构造方法就可以看出来.RandomAccessFileRandomAccessFile包装了一个原创 2011-05-15 07:41:00 · 763 阅读 · 0 评论 -
集合2
在这里主要对Map作一个总结,还有就是HashSet和HashMap的关系作一个总结,对他们的底层实现做一个总结:HashMap与HashSet有点不一样,当后面的那个key与前面的那个key一样时,后面的那个key的值会覆盖掉前面的那个.而不像HashSet那样如果HashCode一样则插入不进去.这跟他的底层实现是有关系的.Map中的key是不能够一样的,不能够重复的,而值是可以重复的.KeySet和values方法返回的值的类型为什么不一样呢?前面就表达了它的本意嘛,因为key不能重复,Set是不能有原创 2011-05-10 10:23:00 · 392 阅读 · 0 评论 -
自动装箱与可变参数
对于自动装箱,有一个需要注意的是:Integer类有一个缓存,它会缓存介于-128~127之间的整数。public class BoxTest2{ public static void main(String[] args) { //Integer i1 = 100; // Integer i2 = 100; Integer i1 = 200; Integer i2 = 200; if(i1 == i2) { System.out.println("i1 == i2"); } else原创 2011-05-10 11:55:00 · 365 阅读 · 0 评论 -
反射
<br />一提到反射,那么就要想到是运行时的事,而不是编译时的事.<br />在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制<br />Java 反射机制主要提供了以下功能:(注意都是运行时的)<br />•在运行时判断任意一个对象所属的类。<br />•在运行时构造任意一个类的对象。<br />•在运行时判断任意一个类所原创 2011-05-11 21:36:00 · 441 阅读 · 0 评论 -
注解
Java注解(Annotation):下面三个是常用注解a) Override注解表示子类要重写(override)父类的对应方法。b) Deprecated注解表示方法是不建议被使用的。c) SuppressWarnings注解表示抑制警告。在项目里面有些东西你想用JDK1.4,有些是想用JDK1.5,那么你可以用@suppressWarnings这样的注解,压制警告@SuppressWarnings("uncheck"),里面的"unchecked"是压制的警告类型.元素是数组的.可以看JDK文档,因为原创 2011-05-11 22:09:00 · 456 阅读 · 0 评论 -
内部类
内部类(Inner Class),内部类共分为4种。静态内部类(static inner class):如果一个类被static修饰,那么这个类必定是个内部类.只能访问外部类的静态成员变量与静态方法,包括private的静态成员.生成静态内部类对象的方式为:OuterClass.InnerClass inner = new OuterClass.InnerClass();如何去理解他的这种方式呢?就把它看成是一个类的静态成员就可以了代码:class StaticInner{ private static原创 2011-05-13 23:55:00 · 391 阅读 · 0 评论 -
Swing
The Swing API 功能是强大的,灵活的和广泛的。例如JFC 1.1 有15 public packages。我们经常用的有两个包:–javax.swing–javax.swing.event最主要的是要搞清楚顶层容器java 提供了三个顶层容器:JFrame, JDialog, 和JApplet。特点:•显示在屏幕上的每个组件都必须在一个包含继承中。每一个包含继承都有一个顶层容器作为它的根。•每一个顶层容器都有一个content pane,它包含了顶层容器中的所有组件•菜单在顶层容器中,但在con原创 2011-05-14 10:22:00 · 346 阅读 · 0 评论 -
异常使用陷阱
代码:public class ExceptionTest5{ public void method() { try { System.out.println("进入到try块"); System.exit(0);//这样调用的时候那么程序退出虚拟机了,所以finally里面的语句也不会执行 return;//这样调用finally里面的语句还是会执行的,最后才会return; } catch(Exception ex) { System.out.println("异常发生了")原创 2011-05-14 11:05:00 · 361 阅读 · 0 评论 -
io1
File对象:•一个File类的对象,表示了磁盘上的文件或目录•File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作•File类直接处理文件和文件系统。•File类没有指定信息怎样从文件读取或向文件存储•File类描述了文件本身的属性•File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径•File类还可以浏览子目录层次结构了解File类的几个构造方法:File myFile = new File(" myfile. txt");File myDir = new File(原创 2011-05-15 06:39:00 · 379 阅读 · 0 评论 -
递归
递归:你就把返回的那个值即函数的返回值当作是它的一个计算,阶乘:public int compute2(int number){ if(1==number){ return1;//首先判断出口点 }else{ return number*compute2(number-1); }}斐波纳契数列public class Fab{ //使用递归计算斐波纳契数列 public int compute(int n) { //递归的出口,首先判断出口点 if(1 == n || 2 == n) { re原创 2011-05-15 07:00:00 · 462 阅读 · 0 评论 -
范型
所谓泛型:就是变量类型的参数化。范型就是很广泛的一种类型它不是JAVA中的一种类型,它打表的是那种类型的信息,你写成等等都是行的.当你不写上范型类别时,那就相当于是List,也即如果你用时默认是,学习时如果你看到类似这样,你就把先它当作Object就可以了.与的区别与联系,前者是声明一个范型时用到,而后者是声明的时候没有用到,当你实例化对象时才用到,即才传进去,举例的代码如下:前者:public class ListGenericFoo//声明的时候用了,那么以后你用的时候不管什么时候都限定死了它必须ext原创 2011-05-10 11:44:00 · 640 阅读 · 0 评论