- 博客(19)
- 收藏
- 关注
原创 Java中的线程操作
一般操作系统运行时,会执行多个任务,每一个任务就是一个程序,而每一个运行中的程序就是进程,而一个进程可能包含多个线程 程序:指令+数据的byte序列 进程:正在运行的程序,是程序动态运行的过程(在内存中运行) 线程:存在程序的内部,用来完成某个特定的目标;比如:看电视,放音乐,下载文件等 并发:多个线程可以同时运行抢占资源;比如:一边听音乐,一边打游戏等 Windows操作系统是多任务操作系统,它以进程为单位。一个进程是一个包含有自身地址的程序,每个独立执行的程序都称为进程,比如正在运行的QQ是一个进程、
2020-08-06 10:21:32
249
原创 Java中对象的序列化和反序列化操作
Java的IO流不仅可以对字符进行传输,也可以对对象进行传输,叫做对象的序列化和反序列化 序列化:将对象转为方便传输的流(对象写入文件) 反序列化:将流转换成对应的对象(把对象从文件中拿出) 注意:如果我们需要将对象序列化到文件,首先需要让需要序列化对象对应的类实现序列化接口Serializable,该接口中没有任何方法和属性,仅仅只是一个标志,表示实现该接口的类是可以被序列化的;如果没有实现该接口就进行序列化,会报出NotSerializableException没有序列化的异常 import java
2020-07-15 14:37:50
292
原创 Java中的IO流操作类
IO流:是用来操作文件内容的的技术,输入输出都是针对程序而言的 I(in)输入:向程序中输入数据,一般是从文件中读取数据到程序中 O(out)输出:程序向外部输送数据,一般是将数据输出到文件中 下图为IO继承体系图 IO流可以分为两类,分别是字节流和字符流 字节流可以分为字节输出流,字节输入流和字节缓冲流 字符流可以分为字符输出流,字符输入流和字符缓冲流 主要使用到的类为表所示: 分类 输出流 输入流 缓冲输入流 缓冲输出流 字节流 FileInputStream FileOutput
2020-07-04 23:28:30
263
原创 Java文件操作类File
File类:是java中针对文件进行操作的一个类 该类可以根据封装的文件路径对指定的文件或者目录进行相关的操作 该类的构造方法是需要我们传递参数的,该参数就是需要封装的文件路径 File file = new File("src/FileTest"); 上述给的是相对路径,也可以给绝对路径 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件 相对路径:必须使用取自其他路径名的信息进行解释 我们可以通过该类中的方法进行拿取文件的路径名称或者绝对路径 方法名 作用 Strin
2020-07-02 22:24:27
363
原创 Java中的异常处理机制
无论是在程序编译阶段,还是运行阶段,都会因为一些逻辑问题导致程序出现异常,那么我们就需要对其进行处理 下图是java中的异常继承体系图 java中的异常主要分类两大类,一种是程序本身无法处理的严重异常Error;一种是程序可以处理的异常Exception,对于Exception异常又可以分为编译时异常和运行时异常 运行时异常:RuntimeException及其子类,在编译期间不检查的,出现问题后,需要我们回来修改代码 编译时异常:非RuntimeException,编译期就必须处理的,否则程序不能通过编
2020-06-29 23:15:22
253
原创 Java集合工具类Collections
对于数组有针对数组操作的工具类Arrays 对于集合也有针对集合操作的工具类Collections 针对集合,当我们想要对其进行一些操作,比如排序,乱序等操作时,就会比较麻烦,这时候可以使用Collections里的方法对其进行操作 1.void sort(List list):对集合进行自然升序排列 //创建集合对象 ArrayList<Integer> list = new ArrayList<Integer>(); //添加数据 list.add(24);
2020-06-25 22:05:18
200
原创 Java集合框架之双列Map集合简介
对于Map集合,它和Collection集合不同在于:Collection体系下的集合为单列集合,而Map体系下的集合为双列集合 Map集合:无序,由Key(键)和Value(值)组成 在Map集合中一个键对应一个值,并且键不能重复,但值可以重复出现 Map是一个接口,所以无法直接创建实例化对象,所以我们需要根据其子类来创建实例化对象 上图为Map中两个常用的子类 HashMap:散列的键值对,常用 TreeMap:树状键值队 通过上述两个子类我们就可以创建实例化对象了 //通过HashMap创建实例
2020-06-23 21:08:46
281
原创 Java集合框架之Set集合简介
和List集合一样,Set集合也是属于单列集合,同属于Collcetion集合体系下 List和Set都是单列集合,但是他们是存在区别的 List:有序,元素可重复的单列集合 Set:无序,元素不可重复的单列集合 Set和List集合一样属于接口,无法直接创建实例化对象,需要子类来创建;下面介绍两个两个常用的子类: HashSet:散列集合,存放是无序的 //通过HashSet创建Set的实例化对象 Set<String> set = new HashSet<String>
2020-06-20 16:50:08
284
原创 Java集合中的迭代器和列表迭代器
迭代器:迭代器是java中用来遍历集合的一种设计模式,并且需要依赖集合而存在 在Java中存在迭代器Iterator接口,由于迭代器是依赖于集合而存在的,所以我们创建迭代器的实例化对象就需要通过集合中的iterator()方法 //创建集合对象 ArrayList<String> list = new ArrayList<String>(); //添加元素 list.add("hello"); list.add("java"); list.add("world
2020-06-17 23:33:00
506
1
原创 Java集合中的数据结构双向队列
双向队列:与单向队列相比,双向队列在队列两端都可以进行入队和出队的操作,增加了数据的可操作性 下图为双向队列的增删操作 从上图我们可以看到,无论是队头还是队尾,都可以进行数据的增删操作,这样我们就可以根据需要对数据进行添加和删除了。但是无论是单向队列还是双向队列,都是运算受限的线性表 在java集合体系中也存在双向队列的接口Deque,下图为Collection集合的继承体系 Deque是双向队列接口,是队列Queue的子接口;是指队列两端的元素既能入队,也能出队 如果我们需要创建Deque创建实例化对
2020-06-15 21:40:40
844
原创 Java集合中的数据结构单向队列
队列是一种数据结构,这种数据结构实现数据的先进先出;队列是一种特殊的线性表,一种运算受限的线性表;只允许在表的一端进行插入数据,在表的另一端进行删除数据; 队尾(rear):是允许插入数据的一端 队头(front):是允许删除数据的一端 下图为队列中数据的增删操作 从图中可以看到,我们要向队列中插入数据,需要从队列后面依此插入数据;我们需要删除数据的时候,需要从队列前面进行依此删除数据 对于队列,在java集合框架中也存在队列Queue(单向队列),我们通过下面的Collection继承体系图来了解队列所
2020-06-13 21:27:55
513
原创 Java集合中的数据结构栈
栈是一种数据结构,这种结构实现了数据的先进后出,那么栈是怎么运行的呢? 由上图我们可以看到,栈相当于一个封底的盒子;封底的一端我们叫栈底,数据进出的一端我们叫栈顶;当我们向栈里存放数据的时候,最先放入的数据会被放入最下面,当我们要拿出数据的时候,只能先拿出它上面的数据后才能拿到最下面的数据,这样就实现了数据的先进后出(栈的特点) 在java集合体系中也存在栈类Stack Stack<Integer> st = new Stack<Integer>(); 他和其他集合一样,可以传
2020-06-11 22:39:57
521
原创 java集合框架之List集合
数组和集合的区别: 数组:长度不可变 集合:长度可变 Conllection是集合框架的父接口 他的子接口有List和Set集合,均为接口 下图所表示的是Collection的集合框架的继承体系 今天主要分享List集合:List集合是有序的单列可重复的集合,其中两个常见的实现类是ArrayList和LinkedList ArrayList:底层实现是用的数组,有下标;查询快,但是增删数据比较慢 LinkedList:底层实现是用的双向链表,没有下标;查询慢,但是增删数据比较快 List集合常用方法: 1
2020-06-08 18:43:11
204
原创 Java中的拆箱和装箱
装箱:将基本数据类型转换为包装类型 拆箱:将包装类型转换为基本数据类型 在JDK5之前是手动做这件事(包括1.5) 在JDK5以后是自动做这件事 下面主要用Integer演示 自动装箱:int–>Integer 我们知道Integer是引用数据类型,需要通过new关键字创建对象,但是JDK5以后对于基本数据类型的包装类可以直接对其赋值 //通过new关键字赋值 Integer in = new Integer(6); //直接赋值 Integer i = 6; 第二种虽然看着是直接赋值,
2020-06-05 23:36:29
289
原创 Java字符串String中可能会用到的方法
字符串String是我们使用最多的数据之一,做为一个最终类,里面肯定会有各种操作方法供我们使用;接下来就会看到一些可能会使用到的方法 1.int length()方法:返回字符串的长度 String s = "HelloJava"; int len = s.length(); System.out.println(len);//打印结果:9 当字符串的长度是变化或比较长的时候,,我们可以通过此方法直接获取一个int类型的长度及字符串的长度 2.char charAt(int index):返回
2020-06-03 16:20:36
490
原创 正则表达式之在java中使用
正则表达式:不是java的,是独立的体系,有自己的语法,但是java是支持正在表达式的 用正则表达式是用来描述一种格式 一些特殊的字符表示一些特定的语义 职责范围:只判断格式,不关注有效性 正则表达式中的特殊符号: [] 一个字符 [abc] a,b,c中的一个 [^abc] 除了a,b,c以外的任意一个 [a-z] a-z中的任意一个 [a-zA-Z0-9] 所有字母和数字中的任意一个 \d 任意一个数字 \w 任意一个单词字符[a-zA-Z0-9] x? 表示有0个或者1个x x+ 表示一个或者一个以上
2020-06-02 13:22:32
234
原创 Java中字符串不同使用方式的比较
一般我们使用字符串有两种情况 1是直接赋值 2是通过new关键字创建对象 我们首先通过new关键字创建的字符串进行比较` String s1 = new String("java"); String s2 = new String("java"); System.out.println(s1==s2);//false System.out.println(s1.equals(s2));//true 首先创建两个字符串对象,通过 == 号比较; 对于 == :如果比较基本数据类型,比较的是
2020-06-01 10:36:43
544
原创 java时间Calendar类实现控制台打印日期
java中Calendar类包含有获取和设置时间/日期的方法;此方法为抽象方法,无法直接实例化,所以可以通过子类或工厂模式方法获取实例化对象。 首先创建Calendar对象 方法1:工厂模型getInstance()方法获取对象(常用) Calendar c = Calendar.getInstance(); 方法2:使用GregorianCalendar子类获取实例化对象 Calendar c = new GregorianCalendar(); 打印日期我们需要从1号开始打印,所以首先就需要吧日期设
2020-05-30 23:58:22
875
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人