JavaSE
天道酬勤Victor
这个作者很懒,什么都没留下…
展开
-
Java笔记-多线程之线程同步
线程同步的引入问:为何要使用同步?答:Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。案例:电影院售票需求:某电影院目前正在上映贺岁大片,共有100张票,而它有3个售票窗口售票,请设计一个程序模拟该电...原创 2018-09-15 17:28:53 · 213 阅读 · 0 评论 -
Java笔记-I/O流之对象序列化流
对象序列化流对象序列化流基本介绍使用工具:ObjectOutputStream,ObjectInputStream 介绍:将对象以文件的形式保存在硬盘中,使之能更方便的传输。 条件:必须实现Serializable接口(实现了这个接口,但并不需要重写任何方法)对象序列化:将对象保存到本地文件ObjectOutputStream:本身有写基本数据类型和引用数据类型...原创 2018-09-12 19:01:22 · 194 阅读 · 0 评论 -
Java笔记-I/O流之系统标准输入输出
Java的标准输入和输出介绍Java遵循标准I/O的模型,提供了Syetem.in,System.out,以及System.err。System.out 是一个已经预先处理过的,被包装成PrintStream的对象。System.err 和 System.out 一样,也是一个PrintStream。但是 System.in 不是,它是一个未经处理的InputStream。也就是说...原创 2018-09-12 20:26:43 · 927 阅读 · 0 评论 -
Java笔记-多线程之线程死锁问题加简单举例
死锁导致死锁的原因Java中死锁最简单的情况是,一个线程T1持有锁L1并且申请获得锁L2,而另一个线程T2持有锁L2并且申请获得锁L1,因为默认的锁申请操作都是阻塞的,所以线程T1和T2永远被阻塞了。导致了死锁。这是最容易理解也是最简单的死锁的形式。但是实际环境中的死锁往往比这个复杂的多。可能会有多个线程形成了一个死锁的环路,比如:线程T1持有锁L1并且申请获得锁L2,而线程T...原创 2018-09-17 16:43:38 · 179 阅读 · 0 评论 -
Java笔记-多线程之线程通信
线程通信介绍本总结我对于JAVA多线程中线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信线程通信简单举例加实现举例例如: 生产线程和消费线程之间要进行沟通,不生产就不消费,生产一个,消费一个。分析: 经过我们分析得知,生产和消费线程一直在互相抢占CPU执行权。一会儿生产好几个,一会儿连续卖好几个。而且中间还会出现,吕布 女、貂蝉 ...原创 2018-09-17 16:57:16 · 169 阅读 · 0 评论 -
Java笔记-多线程之用匿名内部类创建线程
介绍有时候我们只需要一个线程运行一次,那么我们可以使用匿名内部类创建线程的方法来创建线程。三种创建方法1.Thread子类匿名内部类代码演示如下:public static void main(String[] args) { new Thread() { @Override public void run() { ...原创 2018-09-17 17:19:32 · 329 阅读 · 0 评论 -
Java笔记-多线程之线程池
介绍在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。在JDK5之前,...原创 2018-09-17 18:20:58 · 167 阅读 · 0 评论 -
Java笔记-I/O流之自己封装读一行的流(装饰者模式实际使用)
目的代码实现自己写一个封装读一行的流 readLine()方法代码演示1.BufferedReaderSuper.java 类import java.io.IOException;import java.io.Reader;public class BufferedReaderSuper { private Reader reader; pub...原创 2018-09-15 09:33:49 · 161 阅读 · 0 评论 -
Java笔记-I/O流之比较器接口对象数组排序
对象数组排序内容介绍1.对象数组直接调用sort()方法报错的原因:是因为没有定义比较的规则,需要自己定义。2.如何定义规则? 看报错信息:ClassCastException: demoCompare.Person cannot be cast to java.lang.Comparable 表达的意思就是: 当前比较的对象的那个类没有实现Compara...原创 2018-09-15 09:46:37 · 131 阅读 · 0 评论 -
Java笔记-I/O流之随机访问流RandomAccessFile
随机访问流RandomAccessFileRandomAccessFile特点: 既可以读也可以写,而且可以操作多种类型数据。构造方法 构造方法 介绍 RandomAccessFile(File file, String mode) 创建从中读取和向其中写入(可选)的随机访问流,该文件由 file 参数指定 RandomAccessFile(Str...原创 2018-09-15 09:49:31 · 244 阅读 · 0 评论 -
Java笔记-多线程之线程控制
线程控制我们已经知道了线程的调度,接下来我们就可以使用如下方法对象线程进行控制。1.线程休眠public static void sleep(long millis):让当前线程处于暂停状态,millis参数毫秒值,即暂停时间。代码演示如下:1.MyThread.java:public class MyThread extends Thread { publ...原创 2018-09-15 13:22:46 · 167 阅读 · 0 评论 -
Java笔记-flush()与close()区别
flush()就是单纯的刷新缓冲区 close()是关闭流 默认刷新一次缓冲区原创 2018-09-11 18:38:54 · 4524 阅读 · 0 评论 -
Java笔记-I/O转换流(字符流)
转换流基本介绍转换流包含:1.OutputStreramWriter输出流 2.InputStreamReader输入流如果构造器里面不传入编码,则使用平台默认编码转换流本质: 把字节流+编码表 转换成 字符流...原创 2018-09-11 17:38:45 · 248 阅读 · 0 评论 -
Java笔记-字符串编码与解码以及编码表原理
编码表编码表:是一张由字符及其对应编码的表计算机只能识别二进制数据,早期由电信号演化而来。为了方便使用计算机,让它可以识别各个国家的文字,就将各个国家的文字用数字来表示,并一一对应,形成一张编码表。常见编码表ASCII表ASCII表:英国标准信息交换码。用一个字节的7位来表示字符,还有一个符号位。ISO8859-1表ISO8859-1表:拉丁码表。欧洲码...原创 2018-09-11 17:28:21 · 413 阅读 · 0 评论 -
DBUtils学习(介绍和入门)
本文转自:http://www.cnblogs.com/CQY1183344265/p/5854418.html Dbutils学习(介绍和入门) 一:Dbutils是什么?(当我们很难理解一个东西的官方解释的时候,就让我们记住它的作用) Dbutils:主要是封装了JDBC的代码,简化dao层的操作。 作用:帮助java程序员,开发Dao层代码的简单框架。 ...转载 2017-11-09 18:34:34 · 465 阅读 · 0 评论 -
Java笔记-集合
实例化后的list的默认值public class List默认值 { public static void main(String[] args) { List<String> arrayList = new ArrayList<>(); List<String> linkedList = new LinkedList<>(); if (ar原创 2017-11-11 15:29:57 · 180 阅读 · 0 评论 -
服务器客户端间数据传输(最简单例子)
服务器客户端间数据传输(最简单例子)本地Send项目向Re项目传输数据 项目结构如下: Send项目为发送数据,Re项目为接收数据由于需要实体所以两个项目要有同样的实体类StudentStudent.java(两个Student类代码完全相同)import java.io.Serializable;public class Student implements Seri...原创 2018-03-13 17:35:49 · 3640 阅读 · 0 评论 -
Java笔记-面向对象程序设计(基础)
类和对象Java的类模板Java的类模板如下所示:public class<类名>{ //定义属性部分 属性1的类型 属性1; 属性2的类型 属性2; ...... 属性n的类型 属性n; //定义方法部分 方法1; 方法2; ...... 方法n;}在Java中创建一个类需要使用一...原创 2018-04-20 15:38:58 · 550 阅读 · 0 评论 -
Java笔记-集合框架
一、集合框架概述1.引入集合框架申明一个50长度的数组来存储数据的缺陷:数组长度固定不变,不能很好地适应元素数量动态变化的情况。若要存储大于50个元素,则数组长度不足;若只存储20长度的数据,则造成内存空间浪费。虽然可通过数组名.length获取数组的长度,却无法直接获取数组中真实存储的狗狗个数。数组采用在内存中分配连续空间的存储方式,根据下标可以快速获取对应的信息,但是根据信息...原创 2018-05-09 18:05:36 · 580 阅读 · 0 评论 -
Java笔记-实用类
本文将介绍java.lang和java.util包中常用的几个类,包括枚举,包装类,String 类型常用方法以及 String 类、 StringBuffer 类和 StringBuilder 类三者的对比、日期类型等。一、枚举1.枚举概括从 JDK1.5 开始,Java语言引入了一种新的类型——-枚举(Enum)。枚举:由一组固定的常量组成的类型,使用关键字 enum定义,语法...原创 2018-05-17 14:57:48 · 706 阅读 · 0 评论 -
Java笔记-I/O字节流
操作文件或目录的属性使用File类操作文件或目录属性java.io包为我们提供了一些接口和类,对文件进行基本的操作,包括对文件和目录属性的操作、对文件读写的操作等。如何使用File 类操作文件或目录: 一个File 对象可以代表一个文件或目录。利用它可以对文件或目录进行基本操作。//创建一个 File 对象的语法如下://pathName表示所指向的文件路径名。File fi...原创 2018-05-23 16:29:11 · 367 阅读 · 0 评论 -
Java笔记-多线程之多线程的创建使用,获取和修改名字,线程优先级
线程概述计算机的操作系统采用多任务和分时设计,多任务是指在一个操作系统中可以同时运行多个程序。例如,可以在使用QQ聊天的同时听音乐,即有多个独立运行的任务,每个任务对应一个进程,每个进程也可产生多个线程。进程几乎所有的操作系统都支持进程的概念,所有运行中的任务通常对应一个进程(Process)。当一个程序进入内存运行时,即变成了一个进程。进程是处于运行过程中的程序,并且具有一定的独立功...原创 2018-05-23 18:04:27 · 389 阅读 · 0 评论 -
Java笔记-File类基本操作
使用File类操作文件或目录属性java.io 包为我们提供了一些接口和类,对文件进行基本的操作,包括对文件和目录属性的操作、对文件读写的操作等。File类构造方法如何使用File 类操作文件或目录: 一个File 对象可以代表一个文件或目录。利用它可以对文件或目录进行基本操作。//创建一个 File 对象的语法如下://pathName表示所指向的文件路径名。//...原创 2018-09-11 15:20:41 · 546 阅读 · 0 评论 -
Java笔记-多线程之线程生命周期
线程生命周期线程生命周期转换图:线程生命周期介绍:1、线程的生命周期:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。 2、当线程对象调用了start()方法之后,该线程处于就绪状态,Java虚拟机会为其创建方法调用栈和程序计数器,处于这个状态中的线程并没有开始运行,只是表示该线程可以运行了。至...原创 2018-09-15 14:53:51 · 151 阅读 · 0 评论