Java基础学习——Java网络编程(三)自定义枚举类、枚举类的常用方法、枚举类实现接口、枚举类的实际应用 一、什么是枚举枚举法:一枚一枚的列举出来,列举的元素是有限的、确定的。例如:星期(一、二、三、四、五、六、日)、性别(男、女)、季节(春、夏、秋、冬)二、自定义枚举类...
Java基础学习——Java线程(三)实现线程通信 为什么要引入线程通信对于抢票问题,开启的两个线程来抢票,线程1和线程2抢到票的几率是不定的,可能第一张票被线程1抢走,第二张票还是被线程1抢走,线程1和线程2并不是轮流执行的。对于生产者消费者的问题:生产者每次生产一件商品放入仓库,只有当消费者消费了仓库中的商品后,生产者才会继续生产商品放入仓库。同样只有当仓库里有商品时,消费者才能消费。也就是说,生产者和消费者是轮流交替访问仓库的,生产者生产一件,消费者消费1件。不可能仓库中有商品生产者再生产一件商品,也不可能仓库中没有商品消费者消费商品。
Java基础学习——Java线程(一)多线程的发展史、线程的三种创建方式、线程的生命周期、线程的常用方法、线程的优先级 一、什么是线程1.概念1)程序:为完成特定任务,用某种语言编写的一组指令的集合(程序是静态的)2)进程:是程序的一次执行过程。进程作为分配资源的单位,在内存中为每个正在运行的进程分配不同的内存区域(进程是动态的),进程有生命周期。3)线程:一个进程同时执行多个线程,就是多线程。2.单核CPU与多核CPU对于在单核CPU上执行的多个线程,CPU按照时间片执行,一个时间片只能执行一个线程,但时间片时间特别短,造成了同时执行多个线程的假象。多核CPU才真正实现了同一时间多个线程同时
Java基础学习——Java流(三)转换流、System中的IO流、数据流、对象流、序列化 一、InputStreamReader和OutputStreamWriter1.转换流的作用将字节流和字符流进行转换转换流属于字符流2.转换流的使用1)使用字节流读取文本文件(字符文件)的话,此时控制台输出的就是字节,那么就要将字节流转换为字符流再输出原文件编码格式为UTF-8import java.io.*;public class Demo09 { public static void main(String[] args) throws IOExcepti
Java基础学习——Java流(一)File类、I/O流的引入 一、File类在Java中,可以将文件封装为File类的对象,对这个对象进行操作。1.常用方法1)对文件的操作:判断可读,可写,存在,输出文件名,文件大小,文件路径,比较两个文件等2)对目录的操作:创建目录,遍历目录,删除目录等package com.rzd.no04file;import java.io.File;public class Demo01 { public static void main(String[] args) /*throws IOExcept
Java基础学习——Java集合(八)比较器、TreeSet实现类 一、比较器compareTo()方法比较器进行比较的思路:将比较的数据作差,返回一个int类型的数据,a-b>0则a大于b,反之a<b或a=b。下面采用这个思路对不同数据类型进行比较1.比较基本数据类型1)比较int类型数据 int i1=5; int i2=6; System.out.println(i1-i2);//-12)比较String类型数据String类实现了Comparable接口,重写了compare
Java基础学习——Java集合(七)Set接口、HashSet实现类、LinkedHashSet实现类 一、Set接口与List接口的区别1.List:不唯一,有序,遍历方式(普通for循环,增强for循环、迭代器)2.Set:唯一(不能存入相同元素),无序(相对于List来说无序,但不等于随机) 遍历方式(增强for循环、迭代器),因为Set里没有与索引相关的方法,所以不能使用普通for循环遍历二、HashSet实现类...
Java基础学习——Java集合(六)iterator()、Iterator、Iterable的关系、ListIterator迭代器 一、迭代器1. Iterable接口---ArrayList<E>类 extends AbstractList<E>类AbstractList<E>类 extends AbstractCollection<E>类 implements List<E>接口AbstractCollection<E>类 implements Collection<E>接口Collection<E>接口 ex..
Java基础学习——Java集合(五)LinkedList实现类 一、LinkedList实现类1.概念:Linked意为链表2.常用方法1)增:addFirst(E e)、addLast(E e) offer(E e)offerFirst(E e)、offerLast(E e)2)删:poll()、pollLast() JDK1.6才有,相比remove提高了代码的健壮性 removeFirst()、removeLast() //remove一般不使用,因为对于空的集合,删除会报错NoSuchEl...
Java基础学习——Java集合(三)Collection接口、List接口、ArrayList实现类 一、Collection接口1.常用方法package com.rzd.no03collection;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.List;public class Demo01 { public static void main(String[] args) { /*先创建对象,接口是不能创建
Java基础学习——Java集合(二)引入集合 一、为什么要使用集合数组的优缺点优点1)通过下标访问元素的效率很高,指定下标为n的元素的地址:首地址*元素类型字节数2)数组可以保存若干个元素的值。缺点1)数组长度定义后不能改变2)数组进行元素的删除和插入操作的时候,效率比较低。需要移动大量的元素,例如a[10000],删除a[0],后面9999个元素都要向前移动一位3)数组类型定义后只能存放该类型的数据4)数组通过内容查找元素的效率比较低的5)数组实际元素的数量无法获取,比如定义一个数组为a[10000],往里面添
Java基础学习——Java集合(一)算法与数据结构 一、算法具体问题-----》解决流程(算法)----》评价指标解决具体问题的流程叫做算法,有很多典型算法,例如高斯算法(1+2+...+100=101*50=5050)评价算法的指标:时间复杂度,空间复杂度二、数据结构数据结构是计算机存储、组织数据的方式,重点是按照什么结构来管理数据数据结构分为1)逻辑结构:线性表(数组,链表)、树、栈、队列2)物理结构:紧密结构(顺序结构)、跳转结构(链式结构)...
Java基础学习——Java面向对象(十二)Math类、Random类、String类、StringBuilder类、StringBuffer类 一、Math类1.源码分析1)java.lang下的包可以直接使用,无需导包2)final修饰,不能被继承3)构造器是私有的,说明不能创建Math类的对象(不能这么使用:Math math = new Math();)4)Math类里面的属性、方法都由static修饰,说明可以通过Math.属性/方法 调用,不需要创建对象2.常用属性和方法public class Demo01 { public static void main(Strin...
Java基础学习——Java面向对象(十一)包装类 一、定义Java中的基本数据类型没有方法和属性,包装类就是将基本数据类型加上方法、属性、构造器之后进行封装,产生一个类,目的是为了使基本数据类型实现对象化交互。包装类是引用数据类型。1.对应关系基本数据类型 包装类 继承关系byte Byte -->Number-->Objectshort Short -->Number-->Objectint Integer ...