java
alex_陈
这个作者很懒,什么都没留下…
展开
-
10.6 捕获处理异常
异常处理: 方式一:捕获处理 捕获处理的格式: try{ 可能发生异常的代码 }catch(捕获的异常类型 变量名){ 处理异常的代码 } 方式二:抛出处理public class CaptureException { public static void main(String[] args) { div(3,0); } pu原创 2016-11-03 12:51:21 · 198 阅读 · 0 评论 -
14.1 线程回顾和同步函数
package cn.chen.synchronizefunction;/*多线程:一个进程中有多个线程可以同时执行任务。多线程的好处: 1.解决一个进程中可以同时执行多个任务的问题 2.提高资源利用率 多线程的弊端: 1.增加了CPU的负担 2.降低了进程中线程的执行概率 3.出现线程安全问题 4.引发死锁现象自定义线程的实现方式: 方式一: 1.自定义一个类继原创 2016-11-17 18:36:12 · 190 阅读 · 0 评论 -
14.2线程死锁
package cn.chen.threadsecurity;/*java 中同步机制解决了线程安全问题,但是也同时引发了死锁现象。死锁现象出现的原因: 1.存在两个或者两个以上的线程。 2.存在两个或者两个以上的共享资源。死锁解决方法:没有完全解决,只能是尽可能避免发生。 * */class Deadlock extends Thread{ public Deadlock原创 2016-11-17 18:57:43 · 224 阅读 · 0 评论 -
10.3局部内部类
局部内部类:在一个类的方法内部定义另外一个类,那么另外一个类就称作为局部内部类class Outer{ public void test(){ //局部内部类 int y = 100; class Inner { int x = 10; public void print(){ System.out.println("局部内部类原创 2016-11-02 17:30:51 · 204 阅读 · 0 评论 -
10.4匿名内部类
匿名内部类:没有类名的类就称作为匿名内部类。匿名内部类的好处:简化书写。匿名内部类的使用前提:必须存在继承或者实现关系才能使用。abstract class Animal{ public abstract void run();}class Outer{ public void print(){ //需求:在方法内部定义一个类继承Animal类,然后调用run方法。原创 2016-11-02 18:02:12 · 143 阅读 · 0 评论 -
10.4 实现关系下的匿名内部类
//实现关系下匿名内部类//匿名内部类一般用于实参interface Dao{ public void add();}class Outer { public void print(){ new Dao(){ public void add(){ System.out.println("实现关系下的匿名内部类"); } }.add(); }}cla原创 2016-11-02 18:37:48 · 182 阅读 · 0 评论 -
10.5 Throwable类
Throwable为super类下面子类有error和Exception两个大类。Exception包含:运行异常和编译异常。异常:异常体系:-----------|Throwable------------------|Error------------------|ExceptionThrowable常用的方法: toString() 返回当前异常对象的完整类名+错误信息原创 2016-11-02 19:48:16 · 286 阅读 · 0 评论 -
13.4 常见的时期类和Math类
package cn.chen.math.date.simpledateformat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/* java.util.Date; * 日期类 Date 类// 有些方法被Calendar类取代了 * 日期格式化类:Simp原创 2016-11-15 12:57:35 · 271 阅读 · 0 评论 -
13.5 常见Random类
package randomclass;import java.util.Random;public class RandomClass { public static void main(String[] args) { // TODO Auto-generated method stub char[] arr = {'中','国','1','2','3'}; Strin原创 2016-11-15 13:10:45 · 303 阅读 · 0 评论 -
14.5 Interrupt中断的使用
package cn.chen.interrupt;public class DemoInterrupt extends Thread{ boolean flag = true; public DemoInterrupt(String name){ super(name); } @Override public synchronized void run() { int i原创 2016-12-01 13:32:44 · 413 阅读 · 0 评论 -
14.6 设置后台线程
1.默认都不是后台线程,通过setDaemon();方法来设置后台线程。通过 对象.setDaemon(true);设置为后台线程,true表示是后台线程,false表示不是后台线程。2.jion方法,设置优先 线程执行。对象.jion();try{ s.jion(); //加入。一个线程如果执行jion()方法,那么新加入的线程优先执行完在执行后面的语句 }catc原创 2016-12-01 13:55:45 · 321 阅读 · 0 评论 -
13.6 Thread类自定义线程类
package cn.chen.thread;/* * * 线程: * 多线程: * 一个java程序只是有两个线程: * 一个是主线程负责main方法代码执行,一个是垃圾回收器线程,负责 * 创建线程的方式 * 方式一: * 1.自定义一个类继承 Thread类 * 2.重写Thread类run方法。右击--source--override *原创 2016-11-15 19:57:19 · 1319 阅读 · 0 评论 -
14.7 集合
集合:集合是存储对象数据的集合容器。集合比数组的优势: 1.集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。 2.集合的长度是会发生变化的,数组的长度是固定的。Collection: 单例集合的 根接口。 List: 如果实现了List接口的集合类,具备的特点是:有序,可重复 Set:如果实现了Set接口的集合类,具备的特点是:无序,不可重复。Collec原创 2016-12-02 13:34:08 · 339 阅读 · 0 评论 -
14.3 线程实现方法2
package cn.chen.synchronizefunction2;/*自定义线程的创建方式: 方式一: 1.自定义一个类继承Thread类。 2.重写Thread类的run方法,把自定义线程的任务代码写在run方法上。 3.创建Thread的子类对象,并且调用start方法启动一个线程。 注意:不能直接调用run方法,调用start方法的时候线程就会开启,线程一旦开启就原创 2016-11-20 20:51:56 · 192 阅读 · 0 评论 -
14.4 线程通讯-生产者与消费者
package cn.chen.threadcommunication;/*线程通讯:一个线程完成了自己的任务时,要通知另外一个线程去完成另一个任务。生产者与消费者wait(); 等待如果线程执行了wait方法,那么该线程会进入等待的状态,等待状态下的线程必须要被其他线程调用notify方法才能唤醒。notify(); 唤醒 唤醒等待线程。wait与notify方法要注意的事项原创 2016-11-21 13:58:46 · 238 阅读 · 0 评论 -
15.1 集合的迭代器
Collection---迭代的方法: toArray() iterator() //抓取集合中的元素 接口 Iterator 实现方法: boolean hasNext() 如果有元素可以迭代,则返回true e next() void remove()NoSuchElementException 没有元素的异常,package cn.chen.collect原创 2016-12-05 13:10:02 · 230 阅读 · 0 评论 -
15.2 java中迭代器的注意事项
迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素 个数,如果需要添加或者删除只能使用迭代器的方法进行操作。 如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常。 迭代元素 的过程中: 迭代器创建到使用结束的时间。public class Demo5 {原创 2016-12-22 20:45:48 · 367 阅读 · 0 评论 -
13.8 线程的安全问题和解决方法
package cn.chen.threadsecurity;/*出现线程安全问题的原因: 1.存在两个或两个以上的线程对象,而且线程之间共享一个资源。 2.有多个语句操作了共享资源。java线程同步机制: 方式一:同步代码块: 同步代码块的格式: synchronize(锁对象){ 需要被同步的代码。 } 注意事项: 1.任意一原创 2016-11-17 16:57:15 · 240 阅读 · 0 评论 -
10.3内部类
内部类:一个类定义在另一个类的内部,那么该类就被称作为内部类class Outer{ class Inner { }}class InnerClass{ public static void main(String[] args) { System.out.println("Hello World!"); }}原创 2016-11-02 13:20:06 · 233 阅读 · 0 评论 -
10.7抛出异常处理
异常的处理方式:------抛出异常处理抛出异常处理(throw throws)注意事项: 1.如果一个方法的内部抛出一个异常 对象,那么必须要在方法上声明抛出 2.如果调用了一个声明抛出异常的方法 ,那么调用者必须要处理异常。 3.如果一个方法内部抛出了一个异常对象,那么throw语句后面的代码都不会在执行。throw和throws 两个关键字的区别: 1.throw关键字是用于原创 2016-11-03 13:29:42 · 408 阅读 · 0 评论 -
11.1自定义异常类
自定义异常类定义异常类的步骤: 自定义一个类继承Exception即可。//自定一个没有IP的异常类class NoIpException extends Exception{ public NoIpException(String message){ super(message); //调用Exception一个参数的构造函数。 }}class CustomExcep原创 2016-11-03 17:37:03 · 232 阅读 · 0 评论 -
11.2运行异常和编译异常
异常体系------------|Throwable(super类)----------------|Error(错误)----------------|Exception(异常)---------------------|运行时异常(方法内抛出一个运行异常时候 方法上方可以声明 也可以不声明)---------------------|编译时异常(非运行时异常或称为受检异常原创 2016-11-03 21:48:22 · 200 阅读 · 0 评论 -
饿汉单例设计模式
class Single{ //保证这个类在内存中只有一个对象 //单例模式 //2.声明本类的引用类型变量,并且使用该变量指向本类对象。 private static Single s = new Single(); private Single() { //1.私有化构造函数 } public static Single getInstance(){ //3.提供原创 2016-10-25 16:28:34 · 279 阅读 · 0 评论 -
懒汉单例设计模式
懒汉单例设计模式1.私有化构造函数2.声明本类的引用类型变量,但是不要创建对象。3.提供公共静态的方法 获取本类的 对象, 获取之前先判断是否已经创建了本类 对象, 如果已经创建了,那么直接返回对象即可,如果还没有创建,那么先创建本类的对象, 然后在返回。推荐使用: 饿汉单例设计模式。因为懒汉单例设计模式会存在线程安全问题,目前还不能保证一个类在内存中只有一对象原创 2016-10-25 16:56:44 · 288 阅读 · 0 评论 -
11.3finally块控制的读取文件释放
finally 块:finally快 使用前提是必须要存在try块才能使用。finally块的代码在任何情况下都会执行的,除了JVM退出的情况。finally块非常适合做资源释放的工作,可以保证资源文件在任何情况下都会被释放try 块的三种组合方式:第一种:比较适用于有异常要处理,但是没有资源要释放 try { }catch () { }第二种:比较适用于既原创 2016-11-07 10:19:46 · 361 阅读 · 0 评论 -
11.4导包操作
包:java中的包相当于windows文件夹包的作用: 1.解决类名重复的问题 2.便于软件版本的发布定义包的格式: package 包名;包名命名规范:包名全部小写包语句需要注意的事项: 1.package语句必须位于java的第一个语句。 2.如果一个类加上了包语句,那么该类的完整类名就是:包名.类名 3.一个java文件只能有一个包语句。存在的问题 有包之后类与类之原创 2016-11-07 16:19:29 · 293 阅读 · 0 评论 -
11.5 模板模式
模板模式:某类事情的步骤有些是固定,有些是发生变化的,那么这时候我们可以为这类事情提供一个模板代码,从而提高效率。 模板模式的步骤: 1.先写出解决该类事情其中的一件的解决方案。 2.分析代码,把会发生变化的代码抽取出来独立成一个方法,然后把该方法 描述成抽象的方法。 3.使用final 修饰模板方法,防止别人重新你的模板abstract class MyRuntime{原创 2016-11-07 17:03:26 · 216 阅读 · 0 评论 -
11.6 java中jar包使用
打jar包:需要使用到jdk的开发工具(jar.exe)jar 的用法: jar cvf jar文件的名字 class文件名(包名) 例如 jar cvf mail.jar mail(包)打jar包需要注意的事项 1.一个程序打完jar包之后, 必须要在清单文件上指定入口类: 格式Main-Class: 包名.类名 2.jar包双击运行仅对图形化界面的程序起作用,对控制台的程序不起原创 2016-11-08 11:56:06 · 441 阅读 · 0 评论 -
12.1简介Object类
java是面向对象的语言,核心思想:找合适的对象做合适的事: 方式一:自定义类,然后通过自定义的类创建对象。 方式二:sun提供了和多的类给我们使用,我们只需要认识这些类,我们可以通过这些类创建对象。 Object类是所有类的super类,任何类都继承了object类 object类常用的类: toString();返回对象的字符串表示。换回一个字符串用于描述该对象。 e原创 2016-11-09 12:09:57 · 320 阅读 · 0 评论 -
10.1引用数据类型的转换
引用数据类型的转换:小数据类型------->大数据类型自动类型转换大数据类型------->小数据类型强制类型转换需求:定义一个函数可以接收任意类型的动物对象,在函数内部要调用到动物特有的方法abstract class Animal{ String name; public Animal(String name){ this.name = nam原创 2016-11-01 13:30:16 · 363 阅读 · 0 评论 -
10.2 接口关系下的多态
多态:父类的引用类型变量指向了子类的对象或者接口类型的引用类型变量指向了接口实现类的对象。实现关系下的多态:接口变量 = new 接口实现类的对象interface Dao{ public void add(); public void delete();}class UserDao implements Dao{ public void add(){原创 2016-11-01 13:42:27 · 206 阅读 · 0 评论 -
13.7 线程生命周期状态图、线程常用的方法。
package cn.chen.samplethread;import java.lang.*;/*线程生命周期状态图、线程常用的方法。 线程的生命周期:创建状态、等待就绪态、运行状态、阻塞状态、死亡状态。 阻塞状态:执行了临时阻方法sleep()和wait()方法,sleep一旦超过sleep时间状态就会转换到 就绪状态,但是wait()超过等待时间就需要其他的线程唤醒。线原创 2016-11-16 19:19:03 · 1169 阅读 · 0 评论 -
13.1StringBuffer与StringBuilder相同处和不同处
相同点: 1.两个类都是字符串缓冲类。 2.两个类的方法都是一致的。不同点: 1.StringBuffer是线程安全的,操作效率低,StringBuilder是线程非安全的,操作效率高。原创 2016-11-14 12:32:07 · 257 阅读 · 0 评论 -
13.2System类中的常用方法
package cn.chen.systemclass;import java.util.Properties;/* * System 类中的主要方法: * static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) * 从指定源数组中复制一个数组,复制从指定的位置开始,到原创 2016-11-14 13:21:57 · 370 阅读 · 0 评论 -
13.3Runtime 类中的主要方法
package cn.chen.systemclass;import java.io.IOException;import java.util.Properties;/* * Runtime 类中的主要方法: * 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。 * 可以通过 getRuntime 方法获取当前运行时。 应用程序不能创建原创 2016-11-14 14:03:59 · 332 阅读 · 0 评论 -
16.1自定义泛型
自定义泛型: 自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量。 方法上自定义泛型: 修饰符 返回值类型 函数名(使用自定义泛型 ...){ } 在泛型中不能使用基本数据类型,如果需要使用基本数据类型,那么就使用基本数据类型对应的包装类型。 byte----> Byte short---> Short int----> Integer原创 2016-12-29 20:34:21 · 379 阅读 · 0 评论