![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
KAIFAWORD
这个作者很懒,什么都没留下…
展开
-
实例语句块
class wuciqiu{ static{ System.out.println("1"); } { System.out.println("2"); } { System.out.println("3"); } wuciqiu() { System.out.println("wuciqiu"); } public static vo原创 2015-12-30 15:43:36 · 531 阅读 · 0 评论 -
15.4 迭代器要注意的事项
迭代器的add()加入数据是添加到当前指针指向的位置,则当前的数据往下一位移。集合的add()的加在集合的后面。remove()和add()都会改变个数, set()可以,它不会改变个数迭代器在遍历元素的时候要注意,在迭代器迭代元素的过程中(迭代器一旦创建到使用结束的时间,就是迭代器带集合对象使用的后面一直不用,就可以),不允许使用集合对象改变集合中的元素,如果需要添加或者删原创 2016-06-05 13:44:55 · 309 阅读 · 0 评论 -
15.5 ArrayList的原理
ArrayList的原理-----|Collection 单列集合的根接口---------|List如果实现了List接口的集合类,具备的特点:有序,可重复------------|ArrayList(常用) ArrayList底层是维护了一个Object数组实现的。特点:地址连续,查询速度快,增删慢------------|LikeList------------|Vect原创 2016-06-05 13:45:34 · 268 阅读 · 0 评论 -
15.6 LinkeList的实现原理
ArrayList的原理-----|Collection 单列集合的根接口---------|List如果实现了List接口的集合类,具备的特点:有序,可重复------------|ArrayList(常用) ArrayList底层是维护了一个Object数组实现的。特点:地址连续,查询速度快,增删慢------------|LinkeList------------|Vec原创 2016-06-05 13:46:37 · 418 阅读 · 0 评论 -
16.1 扑克牌
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.ListIterator;import java.util.Random;import java.util.Scanner; class Poker { String number; S原创 2016-06-05 13:49:07 · 389 阅读 · 0 评论 -
16.2 vector
vector其底层也是维护了一个Object的数组实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低。ArrayList与Vector的区别:相同点:ArrayList与Vector底层都是使用Object数组实现的。不同点:1、ArrayList是线程不同步的,操作效率高,Vector是线程同步的,操作效率低。2、A原创 2016-06-05 13:49:54 · 295 阅读 · 0 评论 -
16.3 HashSet的原理
HashSet的原理-----|Collection 单列集合的根接口---------|List如果实现了List接口的集合类,具备的特点:有序,可重复------------|ArrayList(常用) ArrayList底层是维护了一个Object数组实现的。特点:地址连续,查询速度快,增删慢------------|LikeList------------|Vector原创 2016-06-05 13:51:45 · 258 阅读 · 0 评论 -
16.4 TreeSet
TreeSetTreeSet要注意的事项:1、往TreeSet添加元素的时候,如果元素本身具备了自然顺序的特性,那么就按元素自然顺序的特性进行排序存储。2、往TreeSet添加元素的时候,如果元素本身不具备了自然顺序的特性,那么该元素所属的类必须要实现Comparable接口,把元素的比较规则定义在compareTo(T o )上。import java.util.HashSet;原创 2016-06-05 13:53:03 · 316 阅读 · 0 评论 -
16.5 TreeSet的实现原理
TreeSet的实现原理(底层用红黑树,即二叉)TreeSet要注意的事项:1、往TreeSet添加元素的时候,如果元素本身具备了自然顺序的特性,那么就按元素自然顺序的特性进行排序存储。2、往TreeSet添加元素的时候,如果元素本身不具备了自然顺序的特性,那么该元素所属的类必须要实现Comparable接口,把元素的比较规则定义在compareTo(T o )上。3、如果比较元素原创 2016-06-05 13:53:57 · 484 阅读 · 0 评论 -
16.6 方法上自定义泛型
JDK1.5以后才会出现:是为了兼顾新老系统的兼容性问题方法上自定义泛型注意:泛型没有多态的概念,左右2边的类型都是一样,或者是只写一边在泛型中不能使用基本数据类型,如果需要使用基本数据类型,那么就使用基本数据类型对应的包装类型。byte -- Byteshort -- Shortint -- integerdouble -- Doublelong原创 2016-06-05 13:55:11 · 405 阅读 · 0 评论 -
16.7 泛型类
泛型类:泛型类的定义格式;class 类名{}泛型注意事项:1、在类上自定义泛型的具体数据类型是在使用该类的时候创建对象的时候确定的。2、如果一个类在类上已经声明了自定义泛型,如果使用该类创建对象的时候没有指定泛型的具体类型,那么就是默认为Object类型。3、在类上自定义泛型不能作用于静态的方法,如果静态的方法需要使用自定义泛型没那么需要在方式法上自己声明原创 2016-06-05 13:59:11 · 442 阅读 · 0 评论 -
13.5 自定义线程
首先要理解什么是进程:正在运行的程序就叫着进程。进程负责了内存空间的划分问题:windows号称是多任务的操作系统,那么windows是同时运行多个应用程序答:宏观:用肉眼来看可以认为是同时运行多个应用程序。微观:单核cpu在同一时间里只能运行一个应用程序,只是多个应用程序做了快速切换的动作,因为他们的速度太快了,我们感觉不到而已。线原创 2016-05-19 16:39:46 · 274 阅读 · 0 评论 -
13.6 线程的生命周期状态,线程常用的方法
1、thread类的构造方法里就是有类的设置线程的名字则类在继承thread类时,可以自己写一个构造方法,方法里用super(name);或者用setName()方法来设置2、getName()获得线程的名字3、sleep是静态的方法,那个线程执行了sleep方法那个线程就睡眠如:main{demo d = new demo();d.slee原创 2016-05-23 22:21:00 · 286 阅读 · 0 评论 -
15.3 List接口特有方法
List接口特有方法(有序)有序:指进出的顺序是一样的只有List接口中特有的方法具备的特点,其他接口下面的集合类都是没有索引值的添加add(int index, E element) addAll(int index, Collection c) 获取get()indexOf(Object o)listIterator() 修改se原创 2016-06-05 13:43:59 · 300 阅读 · 0 评论 -
15.1 迭代器
迭代器的方法hasNext() 判断是否有元素遍历next()获取元素import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class wu{public static void main (String [] args){Collecti原创 2016-06-05 13:37:20 · 250 阅读 · 0 评论 -
单例模式
懒汉式单例class Person{static Person per =null;private Person(){};public static Person aa(){ if(per == null) per= new Person();return per; } }class wuciqiu{ public static void main(原创 2016-01-13 11:43:31 · 296 阅读 · 0 评论 -
在继承中,父类的私有也会被继承,但是子类不可以直接访问,但是可以间接的访问
结果为10原创 2016-01-13 17:32:28 · 665 阅读 · 0 评论 -
14.1 同步函数、死锁现象
进程:一个正在运行的应用程序,负责内存空间的划分。线程:一个进程中的代码是有线程来执行的,线程也是进程中的一个执行路径。多线程:一个进程中有多个线程可以同时进行执行。多线程的优点:1、一个进程中多个线程可以同时执行。2、提高了资源的利用率。 多线程的劣势:1、降低了一个进程中多线程的执行概率。2、增加了cpu负担。3、出现线程安全问题。4、出现死锁。原创 2016-05-27 15:56:36 · 320 阅读 · 0 评论 -
14.2 线程创建的方式二:
方式一:1、自定义一个类,该类继承Thread类。2、重写Thread类的run方法,把自定义线程的代码放到run方法上。3、创建Thread子类的对象,调用start方法,启动线程。方式二:1、自定义一个类实现Runnable接口。2、实现Runnable接口的run方法,把自定义的线程代码放到run方法中。3、创建runnable的实现类对象。4、创建T原创 2016-05-27 15:59:31 · 254 阅读 · 0 评论 -
14.3 线程的实现方式二练习:买票
class SaleTicke implements Runnable{ int k=10; //注意这里不用静态,因为只创建一个Runable子类的对象 public void run() { while(true) { synchronized("锁") { if(k>0) { System.out.原创 2016-05-27 16:00:42 · 298 阅读 · 0 评论 -
14.4 线程的通讯
线程通讯:一个线程完成自己的任务时,就要通知另外一个线程去例子就是生产者与消费者关系wait():等待。如果线程执行了wait方法,那么该线程会进入等待的状态notify():唤醒等待的线程注意:1、wait和notify方法是属于Objeck类的。2、wait和notify方法必须是要找同步代码块或者同步函数中才能使用。3、wait和notif原创 2016-05-27 16:02:08 · 332 阅读 · 0 评论 -
14.5 wait和notify方法 停止线程
wait()一个线程如果执行了wait方法,那个该线程会进入一个以锁对象为标识符的线程池中等待。等着中会释放资源。notify()如果一个线程开启了notify方法,那么久会唤醒以锁对象为标识符的线程中其中的一个。notifyall()唤醒全部的线程。这个2个方法一定要用锁对象来调用。stop()停止线程//这个已经过时500升水池5进水,2出水原创 2016-05-27 16:03:18 · 924 阅读 · 0 评论 -
14.6 守护线程
守护线程也称为后台进程。isDaemon()是用来判断是不是守护线程怎么才能让线程为守护线程setDaemon(true)//true为是,flase不是。默认线程不是守护线程。join()加入:一个线程如果执行了join语句,那么就有线程加入,执行语句的线程必须要让步给新的线程先完成任务,然后才继续执行。class Son extends Thread{原创 2016-05-27 16:04:35 · 266 阅读 · 0 评论 -
14.7 集合的引入
先来回顾一个知识数组:存储同一张数据类型的集合容器。数组的特点:1、只能存储同一种数量类型的数据。2、一旦初始化,长度固定。3、数组中的饿元素与元素之间的内存地址是连续的。注意:Object类型的数组是可以存储任意类型的数据。集合:集合是存储对象数据的集合容器。1、集合可以存储任意类别的对象数据,数组只能存储一个类别的对象。2、集原创 2016-05-27 16:05:33 · 378 阅读 · 0 评论 -
13.2 System 和Runtime类
System RuntimeSystem 类常用方法就是arraycopyint [] src ={2,5,7,8};int [] des = new int [4];System.arraycopy(src,1,des,2, 2);System.out.println("des= "+Arrays.toString(des));结果为:des=原创 2016-05-19 16:36:39 · 278 阅读 · 0 评论 -
13.3 日期类
日期类Date jdk版本1.1以后都是用Calender日期格式化类:SimpleDateFormat作用1:可以把日期转换为制定格式的字符串 format()作用2:可以把一个字符串转换为特定格式 parse()math类:主要是提供了很多的数据公式给我们使用例如:abs()绝对值ceil()向上取整floor()向原创 2016-05-19 16:37:42 · 330 阅读 · 0 评论 -
13.4 获得验证码
获得验证码:char [] ch={'阿','德','美','爱','中','理','a','耶'};StringBuilder sb= new StringBuilder();Random random = new Random();int index;for(int i=0;i{ index = random.nextInt(ch.原创 2016-05-19 16:38:58 · 358 阅读 · 0 评论 -
13.7 线程安全
案例:3个售票窗口class test extends Thread{ int tick= 40; test(String name) { super(name); } @Override public void run() { while(true) { if(0 < tick) { System.out.println(Thread.curr原创 2016-05-23 22:26:37 · 247 阅读 · 0 评论