2016年10月18日

Collection与Arrays

摘要: 1. Collections与Arrays 集合框架中的工具类:特点:该工具类中的方法都是静态的。 Collections:常见方法: 1, 对list进行二分查找: 前提该集合一定要有序。 int binarySearch(list,key); //必须根据元素自然顺序对列表进行升级排序 //要求 阅读全文

posted @ 2016-10-18 23:39 眼泪笑我愚昧 阅读(468) 评论(0) 推荐(0)

LinkedHashSet

摘要: 1.1.1. LinkedHashSet 会保存插入的顺序。 看到array,就要想到角标。 看到link,就要想到first,last。 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口。Comparable,Comparator。 练习:去除数组中的重复元素 阅读全文

posted @ 2016-10-18 22:55 眼泪笑我愚昧 阅读(102) 评论(0) 推荐(0)

TreeSet

摘要: 1.1.1. TreeSet 案例:使用TreeSet集合存储字符串元素,并遍历 import java.util.TreeSet; public class Demo5 { public static void main(String[] args) { TreeSet ts = new Tree 阅读全文

posted @ 2016-10-18 22:54 眼泪笑我愚昧 阅读(194) 评论(0) 推荐(0)

Hashset

摘要: 1.1.1. HashSet | Itreable 接口 实现该接口可以使用增强for循环 | Collection 描述所有集合共性的接口 | List接口 可以有重复元素的集合 | ArrayList | LinkedList | Set接口 不可以有重复元素的集合 | HashSet 线程不安 阅读全文

posted @ 2016-10-18 22:22 眼泪笑我愚昧 阅读(407) 评论(0) 推荐(0)

迭代器

摘要: 1.1. 迭代器 为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator). 对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集 阅读全文

posted @ 2016-10-18 21:44 眼泪笑我愚昧 阅读(1738) 评论(0) 推荐(0)

LinkedList

摘要: 1.1.1. LinkedList --| Iterable | Collection | List | ArrayList 底层采用数组实现,默认10。每次增长 60%,((oldCapacity * 3)/2 + 1) 查询快,增删慢。 | LinkedList 底层采用链表实现,增删快,查询慢 阅读全文

posted @ 2016-10-18 21:21 眼泪笑我愚昧 阅读(204) 评论(0) 推荐(0)

hashcode和equals方法

摘要: 分析: 1:Person类 1:姓名和年龄 2:重写hashCode和equals方法 1:如果不重写,调用Object类的equals方法,判断内存地址,为false 1:如果是Person类对象,并且姓名和年龄相同就返回true 2:如果不重写,调用父类hashCode方法 1:如果equals 阅读全文

posted @ 2016-10-18 21:01 眼泪笑我愚昧 阅读(205) 评论(0) 推荐(0)

数据结构待改善

摘要: 为什么出现这么多集合容器,因为每一个容器对数据的存储方式不同,这种存储方式称之为数据结构(data structure) 注意 集合和数组中存放的都是对象的引用。 阅读全文

posted @ 2016-10-18 20:34 眼泪笑我愚昧 阅读(85) 评论(0) 推荐(0)

Collection

摘要: Collection: 单列集合 |List: 有存储顺序, 可重复 |ArrayList: 数组实现, 查找快, 增删慢 由于是数组实现, 在增和删的时候会牵扯到数组 增容, 以及拷贝元素. 所以慢。数组是可以直接 按索引查找, 所以查找时较快 |LinkedList: 链表实现, 增删快, 查找 阅读全文

posted @ 2016-10-18 20:32 眼泪笑我愚昧 阅读(89) 评论(0) 推荐(0)

线程的通讯

摘要: 1 线程的通讯 线程间通信其实就是多个线程在操作同一个资源,但操作动作不同 生产者消费者 如果有多个生产者和消费者,一定要使用while循环判断标记,然后在使用notifyAll唤醒,否者容易只用notify容易出现只唤醒本方线程情况,导致程序中的所有线程都在等待。 例如:有一个数据存储空间,划分为 阅读全文

posted @ 2016-10-18 18:15 眼泪笑我愚昧 阅读(140) 评论(0) 推荐(0)

线程的生命周期

摘要: 1. 线程生命周期 任何事物都是生命周期,线程也是, 1. 正常终止 当线程的run()执行完毕,线程死亡。 2. 使用标记停止线程 注意:Stop方法已过时,就不能再使用这个方法。 如何使用标记停止线程停止线程。 开启多线程运行,运行代码通常是循环结构,只要控制住循环,就可以让run方法结束,线程 阅读全文

posted @ 2016-10-18 18:15 眼泪笑我愚昧 阅读(125) 评论(0) 推荐(0)

死锁

摘要: 1 死锁 经典的“哲学家就餐问题”,5个哲学家吃中餐,坐在圆卓子旁。每人有5根筷子(不是5双),每两个人中间放一根,哲学家时而思考,时而进餐。每个人都需要一双筷子才能吃到东西,吃完后将筷子放回原处继续思考,如果每个人都立刻抓住自己左边的筷子,然后等待右边的筷子空出来,同时又不放下已经拿到的筷子,这样 阅读全文

posted @ 2016-10-18 18:12 眼泪笑我愚昧 阅读(168) 评论(0) 推荐(0)

锁对象

摘要: 线程间通信其实就是多个线程在操作同一个资源,但操作动作不同,wait,notify(),notifyAll()都使用在同步中,因为要对持有监视器(锁)的线程操作,所以要使用在同步中,因为只有同步才具有锁。 为什么这些方法定义在Object类中 因为这些方法在操作线程时,都必须要标识他们所操作线程持有 阅读全文

posted @ 2016-10-18 18:11 眼泪笑我愚昧 阅读(122) 评论(0) 推荐(0)

等待唤醒机制

摘要: 1.1.1. 等待唤醒机制 wait:告诉当前线程放弃执行权,并放弃监视器(锁)并进入阻塞状态,直到其他线程持有获得执行权,并持有了相同的监视器(锁)并调用notify为止。 notify:唤醒持有同一个监视器(锁)中调用wait的第一个线程,例如,餐馆有空位置后,等候就餐最久的顾客最先入座。注意: 阅读全文

posted @ 2016-10-18 18:10 眼泪笑我愚昧 阅读(922) 评论(0) 推荐(0)

后台线程

摘要: 1. 后台线程 后台线程:就是隐藏起来一直在默默运行的线程,直到进程结束。 实现: setDaemon(boolean on) 特点: 当所有的非后台线程结束时,程序也就终止了同时还会杀死进程中的所有后台线程,也就是说,只要有非后台线程还在运行,程序就不会终止,执行main方法的主线程就是一个非后台 阅读全文

posted @ 2016-10-18 17:55 眼泪笑我愚昧 阅读(313) 评论(0) 推荐(0)

join

摘要: Thread的join方法 当A线程执行到了B线程Join方法时A就会等待,等B线程都执行完A才会执行,Join可以用来临时加入线程执行 本案例,启动了一个JoinThread线程,main(主线程)进行for循环,当计数器为50时,让JoinThread,通过join方法,加入到主线程中,发现只有 阅读全文

posted @ 2016-10-18 17:53 眼泪笑我愚昧 阅读(216) 评论(0) 推荐(0)

线程模拟买票

摘要: 存在问题:这时候启动了四个线程,那么tickets是一个成员变量,也就是在一个线程对象中都维护了属于自己的tickets属性,那么就总共存在了四份。 解决方案一:tickets使用staitc修饰,使每个线程对象都是共享一份属性。 1.1 创建线程的方式二 创建线程的第二种方式.使用Runnable 阅读全文

posted @ 2016-10-18 15:36 眼泪笑我愚昧 阅读(335) 评论(0) 推荐(0)

线程的状态

摘要: 创建:新创建了一个线程对象。 可运行:线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取cpu的执行权。 运行:就绪状态的线程获取了CPU执行权,执行程序代码。 阻临时塞: 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程 阅读全文

posted @ 2016-10-18 15:28 眼泪笑我愚昧 阅读(149) 评论(0) 推荐(0)

创建线程的方式

摘要: 达到了我们预期的效果。 线程的使用细节: 阅读全文

posted @ 2016-10-18 15:23 眼泪笑我愚昧 阅读(95) 评论(0) 推荐(0)

线程的概述

摘要: 进程:正在运行的程序,负责了这个程序的内存空间分配,代表的内存中的执行区域 线程:就是在一个进程中负责一个路径 多线程:就是在一个进程中多个执行路径同时执行 进程负责了一个程序的内存空间 线程负责了一个程序的执行路径 假象: 电脑上的程序同时在运行。“多任务”操作系统能同时运行多个进程(程序)——但 阅读全文

posted @ 2016-10-18 15:15 眼泪笑我愚昧 阅读(126) 评论(0) 推荐(0)

Math

摘要: 1 Math Math:类封装了很多数学的功能。 练习:生成一个随机码 阅读全文

posted @ 2016-10-18 14:48 眼泪笑我愚昧 阅读(81) 评论(0) 推荐(0)

日期格式类

摘要: 阅读全文

posted @ 2016-10-18 14:45 眼泪笑我愚昧 阅读(88) 评论(0) 推荐(0)

Date

摘要: Date 类封装的是系统的当前时间.。但是Date已经过时了,sun推荐使用Calendar类。 Calendar: 该类是一个日历的类,封装了年月日时分秒时区。 阅读全文

posted @ 2016-10-18 14:44 眼泪笑我愚昧 阅读(109) 评论(0) 推荐(0)

Runtime

摘要: Runtime 类主要描述的是应用程序运行的环境。 阅读全文

posted @ 2016-10-18 14:43 眼泪笑我愚昧 阅读(115) 评论(0) 推荐(0)

system

摘要: 可以获取系统属性 阅读全文

posted @ 2016-10-18 14:41 眼泪笑我愚昧 阅读(75) 评论(0) 推荐(0)

StringBuilder

摘要: 线程不安全,效率高 StringBuffer,相反 StringBuffer : 由于String是不可变的,所以导致String对象泛滥,在频繁改变字符串对象的应用中,需要使用可变的字符串缓冲区类。 特点: 1.1 添加方法 StringBuffer("jack") 在创建对象的时候赋值 appe 阅读全文

posted @ 2016-10-18 14:40 眼泪笑我愚昧 阅读(157) 评论(0) 推荐(0)

String类

摘要: String类描述的是文本字符串序列。 留言 QQ 写日志。 创建String类的对象的两种方式: 1.1 字符串对象的比较 String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在 阅读全文

posted @ 2016-10-18 14:38 眼泪笑我愚昧 阅读(169) 评论(0) 推荐(0)

Object对象

摘要: 问题:如果根据名字去作为判断两个人是否是同一个时,明显p与p1是同一个人,但是程序输入却不是同一个人。不符合我们现实生活的要求。 解决: 根据我们学的继承中的函数复写,如果父类的函数不能满足我们目前的要求,那么就可以在子类把该功能复写,达到复合我们的要求。 编程习惯:开发者要对自定义的类重写equa 阅读全文

posted @ 2016-10-18 14:01 眼泪笑我愚昧 阅读(126) 评论(0) 推荐(0)

模板设计方法

摘要: 为了解决某类事情提出的解决方法 计算一段代码执行的时间 class Demo { // 计算一段程序的运行时间 public static void runtime() { long starttime = System.currentTimeMillis(); for (int i = 0; i 阅读全文

posted @ 2016-10-18 13:55 眼泪笑我愚昧 阅读(99) 评论(0) 推荐(0)

jar包

摘要: 3:案例使用jar命令将day10中的cn文件打包为名字为test.jar文件(cn 文件是使用javac -d 编译带包的class文件夹) jar cvf test.jar cn 详细命令: 1:jar cf test.jar cn 在当前目录生成test.jar 文件,没有显示执行过程 2:j 阅读全文

posted @ 2016-10-18 13:16 眼泪笑我愚昧 阅读(131) 评论(0) 推荐(0)

访问修饰符

摘要: 1 访问修饰符 访问修饰符是用来控制类、属性、方法的可见性的关键字称之为访问修饰符。 阅读全文

posted @ 2016-10-18 13:11 眼泪笑我愚昧 阅读(126) 评论(0) 推荐(0)

finally

摘要: 1.1 finally 1: 实现方式一: try{ // 可能发生异常的代码 } catch( 异常类的类型 e ){ // 当发生指定异常的时候的处理代码 }catch... 比较适合用于专门的处理异常的代码,不适合释放资源的代码。 2:实现方式二: try{ } catch(){} final 阅读全文

posted @ 2016-10-18 13:10 眼泪笑我愚昧 阅读(341) 评论(0) 推荐(0)

运行时异常和非运行时异常

摘要: RunntimeException的子类: ClassCastException 多态中,可以使用Instanceof 判断,进行规避 ArithmeticException 进行if判断,如果除数为0,进行return NullPointerException 进行if判断,是否为null Arr 阅读全文

posted @ 2016-10-18 12:59 眼泪笑我愚昧 阅读(1482) 评论(0) 推荐(0)

自定义异常

摘要: 问题:现实中会出现新的病,就需要新的描述。 分析: java的面向对象思想将程序中出现的特有问题进行封装。 案例: 定义功能模拟凌波登录。(例如:lb(String ip))需要接收ip地址 1. 当ip地址为null是需要throw new Exception("无法获取ip"); 2. 但Exc 阅读全文

posted @ 2016-10-18 12:42 眼泪笑我愚昧 阅读(220) 评论(0) 推荐(0)

throw和throw是区别

摘要: throw和throws的区别 阅读全文

posted @ 2016-10-18 12:33 眼泪笑我愚昧 阅读(306) 评论(0) 推荐(0)

Throwable类

摘要: class Demo { public static void main(String[] args) { // Throwable able=new Throwable(); Throwable able = new Throwable("想吐。。。"); System.out.println(a 阅读全文

posted @ 2016-10-18 12:32 眼泪笑我愚昧 阅读(803) 评论(0) 推荐(0)

匿名内部类

摘要: 匿名内部类:就是没有类名字的内部类。 匿名内部类作用:简化内部类书写。 匿名内部类的前提:必须继承一个父类或者是实现一个接口。 匿名内部类的格式: new 父类或者接口(){ 执行代码….}; 内部类的写法: class Outer{ class Inner { public void show() 阅读全文

posted @ 2016-10-18 12:09 眼泪笑我愚昧 阅读(157) 评论(0) 推荐(0)

内部类

摘要: 1 内部类 1.1 内部类的概述 将类定义在另一个类的内部则成为内部类。其实就是类定义的位置发生了变化。 在一个类中,定义在类中的叫成员变量,定义在函数中的叫局部变量,那么根据类定义的位置也可以分为成员内部类和局部内部类。 备注:内部类生产的class文件为 “外部类$内部类”,为了标明该内部类是属 阅读全文

posted @ 2016-10-18 11:58 眼泪笑我愚昧 阅读(122) 评论(0) 推荐(0)

异常图2

摘要: 阅读全文

posted @ 2016-10-18 11:13 眼泪笑我愚昧 阅读(74) 评论(0) 推荐(0)

异常图

摘要: 阅读全文

posted @ 2016-10-18 11:12 眼泪笑我愚昧 阅读(95) 评论(0) 推荐(0)

多态概述

摘要: 1 多态 1.1 多态的概述 1:什么是多态 一个对象的多种状态 (老师)(员工)(儿子) 教师 a =老钟; 员工 b= 老钟; 2:多态体现 1:Father类 1:非静态成员变量x 2:静态成员变量y 3:非静态方法eat,方法体输出父类信息 4:静态方法speak();方法体输出父类信息 2 阅读全文

posted @ 2016-10-18 10:49 眼泪笑我愚昧 阅读(366) 评论(0) 推荐(0)

接口概述

摘要: 接口(interface):usb接口,主要是使用来拓展笔记本的功能,那么在java中的接口主要是使用来拓展定义类的功能,可以弥补java中单继承的缺点。 class Pencil { String name; Pencil() { } Pencil(String name) { this.name 阅读全文

posted @ 2016-10-18 10:35 眼泪笑我愚昧 阅读(334) 评论(0) 推荐(0)

基本数据类型值交换

摘要: 案例: 定义交换数值的功能函数,基本类型数据, 数组,实例对象, String。 基本数据类型交换 数组类型值交换 原因分析:操作的是同一个数组对象。 阅读全文

posted @ 2016-10-18 10:25 眼泪笑我愚昧 阅读(162) 评论(0) 推荐(0)

抽象类

摘要: 为什么使用抽象类 1:定义Dog类 有颜色属性和叫的方法 2:定义Bird类 有颜色属性和叫的方法 3:定义其父类Animal 1:抽取共性颜色属性和叫的方法 1:颜色的属性可以使用默认初始化值。 2:叫的方法在父类中如何定义? 1:狗是旺旺 2:鸟是叽叽喳喳 3:可以将父类的方法定义为狗叫让鸟继承 阅读全文

posted @ 2016-10-18 10:07 眼泪笑我愚昧 阅读(189) 评论(0) 推荐(0)

final关键字的解释

摘要: 使用final 1:final关键字主要用于修饰类、类成员、方法、以及方法的形参。 2:final修饰成员属性: 1:说明该成员属性是常量,不能被修改。 public static final double PI=3.14; 1:public :访问权限最大 2:static :内存中只有一份 3: 阅读全文

posted @ 2016-10-18 09:44 眼泪笑我愚昧 阅读(166) 评论(0) 推荐(0)

为什么子类一定要访问父类的构造函数呢

摘要: 为什么子类一定要访问父类的构造函数呢 1:子类继承了父类的属性,如果要使用父类的属性必须初始化,创建子类对象,必须先初始化父类属性 必须调用父类的构造方法。 2:为什么调用父类无参的构造函数 设计java语言之时,只知道编译器会默认添加无参的构造函数,有参的无法确定。 但是可以通过super关键字显 阅读全文

posted @ 2016-10-18 09:43 眼泪笑我愚昧 阅读(644) 评论(0) 推荐(1)

导航