
JAVA
会重构的毛毛虫
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Set及Map
1.Set集合:*两个重要的实现HashSet以及TreeSet*其中TreeSet的底层是用TreeMap来实现的Set对象不重复:*hashCode()不等*如果hashCode()相等,再看equals或者==是否为falseHashtablef的实现:一般是每一个值算出一个哈希值进行存储 如果有相同的hash值则用列表等处理2.Map:Map是键值对的集合原创 2017-07-10 10:53:12 · 200 阅读 · 0 评论 -
断言以及程序的调试
1.断言:*assert的格式是:assert表达式;assert表达式:信息;*在调试程序时如果表达式不为true,则程序会产生异常,并输出相关的错误信息class Assertion { public static void main(String[] args){ assert hypotenuse(3,4) ==5 :"算法不正确";原创 2017-06-19 15:03:36 · 469 阅读 · 0 评论 -
java装箱,枚举,注解
1.基本类型的包装类:*它将基本类型包装成Object(引用类型)例如int包装成Integer在JDK1.5以后就有了装箱和拆箱:*装箱 :Integer I=10;//Integer I = Integer.valueOf(10);*拆箱:int i = I;//int i =I.intValue();*主要用于集合中例如:Object [] ary = {1,2,3,'a原创 2017-05-22 01:16:21 · 193 阅读 · 0 评论 -
lambda表达式
Lambda表达式的基本写法:*(参数)->结果*例如:(String s)->s.length()*大体上相当于‘匿名函数’或者‘函数指针’*在java中实际上是‘匿名类的一个实例Lambda表达式是接口或者说是接口函数的简写,其中参数可为任意个*在按钮事件处理也可以用Lambda表达式原创 2017-05-21 18:17:36 · 235 阅读 · 0 评论 -
java的局部类和匿名类
1.局部类:*在一个方法中定义的类为局部类2.使用局部类:*同局部变量一样,方法中的内部类 不能够用public,private,protected,static修饰 可以被final和abstract修饰*可以访问外部类的成员*不能访问该方法的局部变量,除非是final的局部变量3.匿名类:匿名类是一种特殊的内部类 它没有类名原创 2017-05-21 01:50:12 · 654 阅读 · 0 评论 -
java内部类的修饰符
1.内部类与类中的字段,方法一样是内部类的成员,它与前面也可以有访问控制符和其他修饰符。 访问控制符:public,protected,默认及private。 注:外部类只能用public修饰或者默认 final,abstract2.static修饰符:*用static修饰内部类表明用该内部类实际上是一种外部类 因为它与外部类的实例无关原创 2017-05-20 02:47:51 · 547 阅读 · 0 评论 -
java内部类
1.内部类就是在其他类中定义的类:*编译器会将其生成为xxx$xxx这样的class文件*内部类不能够与外部类同名内部类的使用:*再封装他的类的内部类使用内部类与普通类的使用方式相同。*在其他地方使用: 类名前面加上外部类的名字 在用new创建内部类时,也要在new前面加上对象变量例如:class Parcel{ private Contents原创 2017-05-20 01:37:16 · 204 阅读 · 0 评论 -
java对象清除和垃圾回收
对象清除:在java中自动清除不需要delete。对象的自动清除:*垃圾回收*对象回收是由java虚拟机的垃圾回收线程来完成的。*为什么系统知道对象是否为垃圾? 任何对象都哟普一个引用计数器,当其值为0时,说明该对象可以回收System.gc()方法:*他是一个static方法*他可以要求系统进行垃圾回收但是只是’建议‘等到系统有空闲时候会进行垃圾回收。原创 2017-05-19 19:02:08 · 3439 阅读 · 0 评论 -
Applet输入输出
AppletInOut.java在init()中add(xxx)加入对象btn.addActionListrner 处理事件actionPerformed()函数具体处理事件例如:public class AppletInOut8 extends JApplet{ JTextField in = newJTextField(10); J原创 2017-04-28 01:33:33 · 1061 阅读 · 1 评论 -
构造方法的执行过程
构造方法的执行过程:*调用本类或者父类的构造方法,直至最高层(Object)*按照声明顺序执行字段的初始化赋值*执行构造函数的各语句通过javaP进行反汇编看代码的执行情况。当我们构造方法中调用其他方法会有什么问题呢?*如果调用方法为虚方法虽然语法上来说是合理的但是会执行出我们不想要的结果。例如我们在父类中调用虚方法时可能会跑到子类中去,因为可能子类中重写了原创 2017-05-19 02:19:28 · 488 阅读 · 0 评论 -
程序的调试
程序中错误大概分为三大类:1.语法错误(Syntax error): 编译器,编辑发现2.运行错误(Runtime error): 异常处理机制3.逻辑错误(logic error): 调试,单元测试程序的调试(debug):调试的三种手段:*断点*跟踪*监视原创 2017-06-29 01:04:02 · 254 阅读 · 0 评论 -
排序和查找
排序与查找:*自编程序排序与查找如冒泡排序,选择排序,冒泡排序等*系统自有的排序与查找如Arrays类以及Collections类1.Arrays类:*Arrays类是用于对数组进行排序和搜索的类Arrays.asList(2,1,5,4)方法可以直接的得到一个List对象*Arrays类提供了sort()和binarySerach()*执行binnarySea原创 2017-07-12 10:06:26 · 349 阅读 · 0 评论 -
集合:Stack及Queue
1.Stack栈:*是遵循“后进先出”原则*重要的线性数据结构*包含三个方法:public Obect push(Object item):将指定对象压入栈中public Object pop():将 栈最上面元素从栈取出,并返回这个对象public boolean empty():判断栈中没有对象元素public static void main(String[] a原创 2017-07-09 07:13:32 · 252 阅读 · 0 评论 -
集合:Collection API 以及List
集合类:1.Collection API*提供了集合和收集的功能*包含了一系列的接口和类*主要包含了三大类Collection接口:有两个子接口List:记录元素的保存顺序,且允许有重复元素Set:不记录元素的顺序,且不允许有重复元素Map接口即映射:键值对的集合2.LIst接口:*List接口:线性表主要实现的是ArrayList,LinkList,以及早原创 2017-07-08 16:36:49 · 330 阅读 · 0 评论 -
字符串和日期类:日期类
日期类:Calendar:*得到一个实例Calendar.getInstance()*.get(DAY_OF_MONTH) .getDisplayName(DAY_OF_WEEK)*.det .add(HOUR,1) .roll(MONTH,5)*setTime(date), .getTime()Date*new Date(), new Date(System.cur原创 2017-07-08 07:12:30 · 250 阅读 · 0 评论 -
字符串和日期:字符串类
字符串和日期1.字符串:*字符串可以分为两类:String s = "";StringBuff sb = new StringBuffer();final int N = 100;long t0 =System.currentTimeMillis();for(int i; i<N;i++) s+=a;long t1 =System.currentTimeMillis();f原创 2017-07-08 07:00:07 · 288 阅读 · 0 评论 -
java语言基础类:Object,Math,System类
java基础类库:*java.lang Java语言的核心类库(自动导入)*java.until 实用工具*java.io 标准输入/输出类库*java.awt javax.swing 图形用户界面(GUI)的类库*java.net 网络功能类库*java.sqi 数据库访问类库等等(可以查看API文档)1.Object类:*Object类是所有类的直接或者间接原创 2017-07-07 11:23:11 · 320 阅读 · 0 评论 -
Java中的线程:线程的创建
*进程:一个程序的执行*线程:程序中单个顺序的流控制称为线程*一个进程可以有多个线程在操作系统中可以查看线程数*一给进程的多个线程:分享CPU(并发的或以时间片的方式)分享内存(如多个线程访问同一对象)Java是支持多线程的:*java从语言级别支持多线程如:Object中wait(),notify()*java.lang.中的类Thread线程体:原创 2017-07-14 16:33:37 · 315 阅读 · 0 评论 -
常用算法:递归,回溯
递归:*递归就是一个过程调用过程本身在递归调用中,一个过程执行的某一步要用到它的上一步的(或几步)结果*递归算法的模式:f(n){ f(n-1);}例如:n的阶乘public class Fac{ public static void main(String args[]) { System.out.println("Fac of 5原创 2017-07-14 10:22:32 · 410 阅读 · 0 评论 -
常用的算法:穷举,迭代
穷举:*在有限的范围内,可以对所有的值都进行试验和判断从而满足条件的值*穷举的基本模式for (;;){ if(); }例如:计算水仙花数:public class All_1{ public static void main(String args[]){ for( int a =1;a=9;a++) for( int b原创 2017-07-13 13:16:17 · 1029 阅读 · 0 评论 -
泛型
泛型:*泛型是JDK1.5增加的最重要java语言特性*使用泛型可以这对不同的类有相同的处理办法Vector v = new Vector();v.addElement("one");String s = v.elementAt(0);*使用泛型的好处*类型更安全*使用更广泛,针对不同的类有相同的处理方法,但这些类之间不一定有继承关系自定义泛型:*自定义泛型原创 2017-07-12 10:47:01 · 317 阅读 · 0 评论 -
对象构造与初始化
构造方法:*构造方法: 对象都有构造方法 如果没有,编译器加一个default构造方法抽象类(abstract)不能用new创建实例但是也有构造方法。调用本类或者父类的构造方法:*调用本类或者父类的构造方法 this调用本类的其他构造方法 super调用直接父类的构造方法 this和super要放在第一条语句,且只能有一条*如果原创 2017-05-19 01:39:15 · 633 阅读 · 0 评论 -
java自定义异常
1.创建用户自定义异常:*创建用户自定义异常应用 继承自Exception类或某个字Exception类 定义属性和方法,或重载父类的方法2.重抛异常及异常链接*对于异常,不仅要进行捕获处理,有时候还需要将此异常进一步传递给调用者,以便让调用者也能感受到这种异常。这时可以在catch语句块或finally语句块中采取以下三种方式: 将当前捕获的异常再次抛出原创 2017-05-29 02:00:35 · 232 阅读 · 0 评论 -
非虚方法的调用
不是虚方法的情况·:*在java中普通方法就是虚方法。*但static,private方法不是虚方法调用。*static,private与虚方法编译后用的指令是不同的。 2.三种非虚方法*static方法,以声明的类型为准,与实例类型无关。*private方法子类看不见,也不会被虚化*final方法的子类不能覆盖也不存在虚化问题原创 2017-05-18 02:11:42 · 514 阅读 · 0 评论 -
java编译与运行
用javac编译例如 javac helloworld.java用java helloworld.class执行设定path和classpath:前者是命令的路径,后者是所引用的类的路径可以在命令行上设定:set path = .;c:\jdk\binset classpath=....也可在系统环境中设定(所谓的配置环境变量)在java和javac命令行上原创 2017-04-23 01:26:24 · 216 阅读 · 0 评论 -
java 中访问控制符
1.修饰符分为两类: *访问修饰符: 例如:public,private等 *其他修饰符: 例如:abstract等可以修饰类也可以修饰类的成员(字段,方法)成员的访问控制符权限:2.类的访问控制符:*类的访问控制符要么没有要么就加public: 若用public修饰,则该类可以被其他类所访问; 若为默认的访原创 2017-05-13 01:52:30 · 418 阅读 · 0 评论 -
java 包的含义及使用
package1.包以及子包的定义,实际上是为了解决名字空间,名字冲突*它与类的继承没有关系。事实上,一个子类与其父类可以位于不同的包中包的两方面的含义:*一个名字空间,存储路径(文件夹)*一是可访问性(同一个包中的各个类,默认情况下可相互访问)2.package 语句:*包层次的根目录是由环境变量classpath来确定的*在简单情况下,没有package语句,这原创 2017-05-13 01:21:58 · 1395 阅读 · 0 评论 -
java中类的继承
类的继承:继承是面向对象程序设计中重要的的特征之一子类(subclass),父类或超类(superclass)java支持单继承:一个类只能有一个父类继承的好处:1.子类可以继承父类的行为和状态。 可以修改父类的状态或重载父类的行为 可以添加新的状态和行为好处: 可以提高程序的抽象程度 实现代码重用,提高代码开法率和可维护性在ja原创 2017-05-12 19:22:48 · 432 阅读 · 0 评论 -
java异常处理
1.异常处理:*异常:对应着java运行错误处理机制*基本写法:try{ 语句组}catch(Exception ex){ 异常处理语句组;}finally{ 异常处理语句}*在传统语言中如C:1.if语句来判断是否出现了意外,2.全程变量ErrNo 正常处理与异常处理的代码可读性很差 可维护性差 错误处理职责不清楚原创 2017-05-23 19:34:44 · 455 阅读 · 0 评论 -
java运行机制
java三种核心机制:1.java虚拟机(Java Virtual Machine)在一台计算机上由软件或硬件模拟的计算机Java虚拟机(JVM)读取并处理经编译过的字节码class文件java虚拟机规范定义了:指令集寄存器集类文件结构堆栈垃圾收集堆内存区域2.代码安全性检测(Code Security)Java运行环境(JRE)JR原创 2017-04-21 01:01:10 · 198 阅读 · 0 评论 -
Java面向对象程序设计,类和对象
类(class):类是具有属性和行为的对象的集合属性:变量(字段field)行为:函数(方法 method)类和对象的关系:类是对象的抽象对象是类的具体实例例如:class Person{int age;//属性String name;//属性void hello(){。。。}//行为}//类Person p = new Person()原创 2017-04-21 01:30:27 · 239 阅读 · 0 评论 -
java相等还是不等
*==*简单说,基本类型是值相等,引用类型是引用相等1.基本类型:*数值类型:转换后比较*浮点数,最好不直接用==*Double.NAN==Double.NAN结果为false*boolean型无法与int相比较第二个是因为在装箱用到了valueOf函数会有缓存在-128到127区间都是正确的2.枚举类型: 内部进行唯一实例化可以直接判断3原创 2017-05-23 02:00:42 · 574 阅读 · 0 评论 -
java引用
没有指针的语言:java但是在java中用引用代替指针,而引用是安全的(1.会检查空指针,2.没有指针运算*(P+5),3.不能访问没有引用到的内存,4.自动垃圾回收)1.引用类型,引用本身就相当于指针*可以用来修改对象的属性,调用对象的方法2.基本类型:*如交换两个整数*void swap(int x,int y){int t = x;x=y;y=t;};*int a原创 2017-05-23 01:34:17 · 226 阅读 · 0 评论 -
java中其他修饰符
其他修饰符:static字段:*静态字段最本质的特点是: 他们是类的字段,不属于任何一个对象实例*他不保存在某个对象实例的内存空间内存中,而保存在类的内存区域的公共存储单元*类变量可以通过类名直接访问,也可以通过实例对象来访问,两种方法的结果是相同的*例如System类的in和out对象,就是属于类的域,直接用类名来访问,即System.inSystem.ou原创 2017-05-14 01:03:38 · 423 阅读 · 0 评论 -
java接口
接口,某种特征的约定:*定义接口 interface 所有的方法自动是public abstract*实现接口implements 可以实现多继承 与类的继承关系无关*面向接口编程,而不是面向实现 Flyable f = new Bird(); java中有大量的接口接口的作用*通过接口可以实现不相关类的相同行为,而不需要原创 2017-05-14 02:17:37 · 148 阅读 · 0 评论 -
图形界面的输入输出
在图形界面下可以:使用文本框对象(TextField)获取用户数数据使用标签对象(Label)或对文本框对象输出数据使用命令按钮(Button)来执行命令示例:AppGrapInOut.javaadd(xxxx)加入对象btn.addAcionListener处理事件actionPerformed()函数具体处理事件例如:setLayout(new原创 2017-04-26 19:11:48 · 2992 阅读 · 1 评论 -
文本界面的输入输出
使用scanner类:(从JDK 1.5以后)使用java.util.Scanner类用其nextInt()方法使用nextDouble()next()得到下一个单词import java.util.Scannerclass ScannerTset{public static void main(String[] args ){Scanner scanner =原创 2017-04-26 18:19:45 · 262 阅读 · 0 评论 -
多态和虚方法的调用
1.多态:*多态:是指在一个程序中相同的名字表示不同的含义。 编译时的多态: 重载:多个同名的不同的方法.例如我们给定的参数个数不同执行不同的功能。 运行时的多态: 覆盖:子类对父类方法的覆盖。 动态绑定:虚方法调用。 在调用方法时,程序会正确调用子类方法的对象。*多态的特点大大提高了程序的抽象程度和简洁性。2原创 2017-05-17 20:58:02 · 346 阅读 · 0 评论 -
JDK里其他几个工具
主要的工具:javac 编译java 运行(控制台以及图形界面程序)javaw 运行图形界面程序appletViewer 运行applet程序另外几个常用工具:jar 打包工具javadoc 生成文档Javap 查看类信息以及反汇编使用jar进行打包:1.编译 javac A.java2.打包jar jar cvfm A.jar A.man A.clas原创 2017-04-25 01:27:39 · 337 阅读 · 0 评论 -
Java SE程序的类型
Application和Applet程序:结构和运行环境不同前者是独立的程序,需要执行器(调用虚拟机)来运行后者是嵌在HTML网页中的非独立的程序由专门的appletViewer来运行或者由Web浏览器(调用JAVA虚拟机)来运行Application程序:helloworld程序为例创建helloworld.javapublic class helloworld{原创 2017-04-22 01:19:24 · 556 阅读 · 0 评论