- 博客(83)
- 收藏
- 关注
原创 java的IO之Properties类
1.配置文件:资源文件(以.properties作为拓展名的文件)/属性文件做项目开发,为何使用配置文件? 把所有的数据存储在代码中,写死了,”硬编码”.比如:在Java中需要连接数据库,必须拥有数据的账号和密码.此时我们就得在Java代码中编写,类似的代码: String username=”root”; String password=”admi
2017-06-27 19:01:48 323
原创 java的IO之扫描器Scanner
1.java.util.Scanner类:扫描器类表示输入操作 存在的方法: xxx表示数据类型,如byte,int ,boolean等. boolean hasNextXxx():判断是否有下一种类型的数据 Xxx nextXxx():获取下一个该类型的数据.import java.io.F
2017-06-27 16:23:04 464
原创 java的IO之标准的IO
1.标准的IO 标准的输入: 通过键盘录入数据给程序. 标准的输出: 在屏幕上显示程序数据.-----------------------------------------------------------在System类中有两个常量: InputStream in = System.in;import java.io.IOException;im
2017-06-27 16:07:05 476
原创 java的IO之打印流
1.打印流打印数据的,打印流只能是输出流: PrintStream: 字节打印流 PrintWriter: 字符打印流对于PrintWriter来说,当启用字段刷新之后, 调用println或者printf或者format方法,便会立马刷新操作. 如果没有开启自动刷新,则需要手动刷新或者当缓冲区满的时候,再自动刷新. 使用打印流作为输出流,此时的输出操作会特别简单
2017-06-27 15:53:24 319
原创 java的对象流(序列化与反序列化)
1.序列化和反序列化序 列 化:指把堆内存中的Java对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络的节点(在网络上传输). 我们把这个过程称之为序列化.反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象的过程.为什么要做序列化: 1):在分布式系统中,需要共享的数据的JavaB
2017-06-27 13:57:22 1481
原创 java的IO之转换流
1.转换流:把字节流转成字符流 InputStreamReader:把字节输入流转成字符输入流. OutputStreamWriter:把字节输出流转成字符输出流.---------------------------------------------------------为什么有字节转字符流,没有字符转字节流. 字节流可以操作一切文件(纯文本文件/二进制文
2017-06-26 21:59:32 294
原创 java的IO之包装流和缓存流
1.处理流/包装流(相对于节点流更高级)装饰设计模式/包装模式 1:隐藏了底层的节点流的差异,并对外提供了更方便的输入/输出功能,让我们只关心高级流的操作. 2:使用处理流包装了节点流,程序直接操作处理流,让节点流与底层的设备做IO操作. 3:只需要关闭处理流即可.包装流如何区分:写代码的时候,发现创建对象对象的时候,需要传递另一个流对象. new 包装流(
2017-06-26 20:56:19 1486
原创 java的IO流之字符编码
1.字符编码的发展历程阶段1:计算机只认识数字,我们在计算机里一切数据都是以数字来表示,因为英文符号有限,所以规定使用的字节的最高位是0.每一个字节都是以0~127之间的数字来表示,比如A对应65,a对应97.这就是美国标准信息交换码-ASCII.阶段2:随着计算机在全球的普及,很多国家和地区都把自己的字符引入了计算机,比如汉字.此时发现一个字节能表示数字范围太小,
2017-06-26 20:26:11 4345 2
原创 java的IO之字符流
1.为什么使用字符流文件的字节流: FileInputStream: FileOutputStream:------------------------------------使用字节流操作汉字或特殊的符号语言的时候,容易乱码,建议使用字符流.先有字节流,后有字符流,字符流是对字节流的补充.使用记事本打开某个文件,可以看到内容的就是文本文件,否则可以
2017-06-26 17:29:28 368
原创 java的IO之字节流
1.文件流: 顾名思义,程序和文件打交道此时我们谈及的文件,值得是纯文本文件(txt的,不要使用Word,Excel),----------------------------------------------------------------- 在字节流中,暂时不要使用中文.FileInputStream: 文件的字节输入流FileOutputStream: 文
2017-06-26 16:42:48 292
原创 java的IO之输入和输出概述
1.什么是IO(Input/Output):输入和输出.IO设备: 和电脑通信的设备.输入设备:麦克风,扫描器,键盘,鼠标等.输出设备:显示器,打印机,投影仪,耳机,音响等.----------------------------------------------------------------------------为什么程序需要IO呢?案例1:打游戏操作,得分
2017-06-26 16:17:31 1668
原创 java的IO之File类
1.File类介绍和路径分隔符File类是IO包中唯一表示磁盘文件和磁盘目录的对象的路径.该类包含了创建,删除文件,重命名文件,判断文件读写权限以及文件是否存在,查询等功能方法.只能设置和获取文件本身的信息,不能设置和获取文件的内容.---------------------------------------------------------------------------
2017-06-26 13:11:19 482
原创 java集合框架之Collections类
1.面试题:Collection和Collections的区别Collection:是一个接口,是集合的顶层接口-----------------------------------------------------------------------------Collections类:是一个类,封装了Set,List,Map的操作的工具方法.获取空集对象(没有元素的集合,
2017-06-26 12:51:42 360
原创 java集合框架之集合工具类Arrays类
1.Arrays类: 在Collection接口中有一个方法叫toArray把集合转换为Object数组. 把集合转换为数组: Object[] arr = 集合对象.toArray(); 数组也可以转换为集合(List集合): public static List asList(T... a) 等价于public static List asList(T[] a).im
2017-06-26 12:39:56 278
原创 java集合框架之List和Set以及Map的选用
1.集合的选用选用哪一种容器取决于每一种容器的存储特点以及当前业务的需求:List: 单一元素集合. 允许元素重复/记录元素的添加顺序.Set:单一元素集合. 不允许元素重复/不记录元素的添加顺序.既要不重复,又要保证先后顺序:LinkedHashSet.Map: 双元素集合. 如果存储数据的时候,还得给数据其为一个的一个名称,此时考
2017-06-26 11:09:27 386
原创 计算一个字符串中每一个字符出现的次数
import java.util.Map;import java.util.TreeMap;public class SetDemo7 { public static void main(String[] args) { String str = "aasdfasdgdifjgiosgsdofgbsmvbisdrthweuotpowsdnfgbvi"; //Map map = ne
2017-06-26 10:57:08 1740
原创 java集合框架之Map的实现类
1.Map的常用实现类HashMap: 采用哈希表算法, 此时Map中的key不会保证添加的先后顺序,key也不允许重复. key判断重复的标准是: key1和key2是否equals为true,并且hashCode相等.TreeMap: 采用红黑树算法,此时Map中的key会按照自然顺序或定制排序进行排序,,key也不允许重
2017-06-26 10:11:18 372
原创 java集合框架之Set和Map之间的关系
1.发现在Map和Set中有很多相类似的实现类名Set Map 算法--------------------------------------------------------------------------HashSet
2017-06-25 20:42:49 2546
原创 java集合框架之Map映射
1.映射的数学解释设A、B是两个非空集合,如果存在一个法则f,使得对A中的每个元素a,按法则f,在B中有唯一确定的元素b与之对应,则称f为从A到B的映射,记作f:A→B。-------------------------------------------------------------映射关系(两个集合):A集合和B集合. A集合中的每一个元素都可以在B集合中找到唯一的一
2017-06-25 20:30:49 497
原创 java集合框架之Set集合实现类性能对比
1.Set接口的实现类共同的特点: 1):都不允许元素重复. 2):都不是线程安全的类. 解决方案:Set s = Collections.synchronizedSet(Set对象);-------------------------------------------------------------------------------------
2017-06-25 16:40:55 683
原创 java集合框架之TreeSet类
1.TreeSet介绍TreeSet集合底层采用红黑树算法,会对存储的元素默认使用自然排序(从小到大).注意: 必须保证TreeSet集合中的元素对象是相同的数据类型,否则报错.2.TreeSet的排序规则自然排序(从小到大):TreeSet调用集合元素的compareTo方法来比较元素的大小关系,然后将集合元素按照升序排列(从小到大).注意:要求TreeS
2017-06-25 16:34:01 527
原创 java集合框架之LinkedHashSet类
1.LinkedHashSet介绍List接口: 允许元素重复,记录先后添加顺序.Set接口: 不允许元素重复,不记录先后添加顺序.需求: 不允许元素重复,但是需要保证先后添加的顺序. LinkedHashSet:底层才有哈希表和链表算法. 哈希表:来保证唯一性,.此时
2017-06-25 15:16:33 297
原创 java集合框架之HashSet类
1.Set是Collection子接口模拟了数学上的集的概念。-----------------------------------------------------------------------Set集合存储特点: 1):不允许元素重复. 2):不会记录元素的先后添加顺序.------------------------------------
2017-06-25 11:22:20 353
原创 java集合框架之泛型
1.为什么需要使用泛型 1):存储任意类型的数据在集合中 ,但是取出来都是Object类型的,此时就得强转. 2):约束存储到集合中的元素必须是相同的数据类型(相同的数据类型才能做比较,比如TreeSet类). 3):设计一个点(Point)类,来封装坐标位置,要求坐标位置支持String类型.Integer类型/Double类型.
2017-06-24 23:23:31 276
原创 java集合框架之集合的迭代操作
1.集合的迭代操作 把集合做的元素一个一个的遍历取出来.---------------------------------------------------------------------迭代器对象: Iterator: 迭代器对象,只能从上往下迭代. boolean hasNext(); 判断当前指针后是否有下一个元素 Obje
2017-06-24 22:29:10 398
原创 java集合框架之List实现类的性能分析
面向接口编程:接口类型 变量 = new 实现类();List list = new ArrayList();---------------------------------------------------------List实现类特点和性能分析:---------------------------------------------------------
2017-06-24 19:39:39 396
原创 java集合框架之LinkedList类
1.LinkedList类它是双向链表,单向队列,双向队列,栈的实现类:所以它里面的方法特别多,特别多重复功能的方法LinkedList类实现单向队列和双向队列的接口,自身提高了栈操作的方法,链表操作的方法. 在LinkedList类中存在很多方法,但是功能都是相同的.LinkedList表示了多种数据结构的实现,每一种数据结构的操作名字不同.------------------
2017-06-24 19:21:10 398
原创 java集合之ArrayList类
1.ArrayList类是Java集合框架出现之后用来取代Vector类的:二者底层原理都是基于数组的算法,一模一样.----------------------------区别:Vector: 所有的方法都使用了synchronized修饰符. 线程安全但是性能较低. 适用于多线程环境.ArrayList:所有的方法都没有使用synchr
2017-06-24 17:39:37 446
原创 java集合框架之栈Stack
1栈(Stack)数据结构的一种,存储特点:Last In First Out.Stack 类表示后进先出(LIFO)的对象栈.它通过五个操作对类Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法首次创建堆
2017-06-24 14:58:44 1742 1
原创 java集合框架之Vector
1.Vector介绍在JDK2之前(在Java的集合框架之前),要存储多个数据,此时存在一个叫Vector类.Vector类底层其实就是一个Object数组,Vector类中的方法是支持同步(方法使用synchronized修饰)的.-----------------------------------------------------------------------------
2017-06-24 14:16:52 334
原创 java集合框架概述
1.Java集合框架的由来其实在Java2(jdk1.2)之前,Java是没有完整的集合框架的。它只有一些简单的可以自扩展的容器类,比如Vector,StackHashtable等。为什么存在容器类: 容器类(集合类)可以存储多个数据,既然数组可以存储多个数据,为什么需要定义容器类. 数组的弊端:
2017-06-24 13:44:01 937
原创 java多线程之线程的优先级
1.线程优先级每个线程都有优先级,优先级的高低只和线程获得执行机会的次数多少有关,并非线程优先级越高的就一定先执行,哪个线程的先运行取决于CPU的调度。MAX_PRIORITY=10,最高优先级MIN_PRIORITY=1,最低优先级NORM_PRIORITY=5,默认优先级----------------------- int getPriority() :返回线
2017-06-23 10:52:08 342
原创 java多线程之后台线程
1.后台线程在后台运行的线程,其目的是为其他线程提供服务,也称为“守护线程"。JVM的垃圾回收线程就是典型的后台线程。特点:若所有的前台线程都死亡,后台线程自动死亡,前台线程没有结束,后台线程是不会结束的。测试线程对象是否为后台线程:使用thread.isDaemon()。前台线程创建的线程默认是前台线程,可以通过setDaenon(true)方法设置为后台线程,并且当且仅当后台线程创建的
2017-06-23 10:48:56 263
原创 java多线程之联合线程
1.联合线程线程的join方法表示一个线程等待另一个线程完成后才执行。join方法被调用之后,线程对象处于阻塞状态。有人也把这种方式称为联合线程,就是说把当前线程和当前线程所在的线程联合成一个线程。哪个线程调用了该方法,那么这个线程就要先执行完才会执行其他的线程.//join线程类class JoinThread implements Runnable { public voi
2017-06-23 10:32:06 1082
原创 java多线程之sleep(long millis)方法
1.线程休眠让执行的线程暂停一段时间,进入计时等待状态。方法:static void sleep(long millis) 调用sleep后,当前线程放弃CPU,在指定时间段之内,sleep所在线程不会获得执行的机会。此状态下的线程不会释放同步锁/同步监听器.该方法更多的用于模拟网络延迟,让多线程并发访问同一个资源的错误效果更明显.在开发中也会故意使用该方法,如:publi
2017-06-23 10:17:37 1150
原创 java多线程之线程的生命周期
1.生命周期一个事物从出生的那一刻开始到最终死亡中间的整个过程.在事物的漫长的生命周期过程中,总会经历不同的状态(婴儿状态/青少年状态/中年状态/老年状态...).线程也是有生命周期的,也是存在不同的状态的,状态相互之间的转换.线程对象的状态存放在Thread类的内部类(State)中:注意:Thread.State类其实是一个枚举类.因为线程对象的状态是固定的,只有6种,此时使用枚举
2017-06-23 10:04:11 5084 1
原创 java多线程之生产者和消费者案例
1.线程通信不同的线程执行不同的任务,如果这些任务有某种关系,线程之间必须能够通信,协调完成工作.经典的生产者和消费者案例(Producer/Consumer): 分析案例: 1):生产者和消费者应该操作共享的资源(实现方式来做). 2):使用一个或多个线程来表示生产者(Producer).
2017-06-22 22:04:29 1508
原创 java多线程之线程同步问题
1.线程不安全的问题分析当多线程并发访问同一个资源对象的时候,可能出现线程不安全的问题.但是,我们分析打印的结果,发现没有问题:为了让问题更明显: Thread.sleep(10);//当前线程睡10毫秒,当前线程休息着,让其他线程去抢资源. 经常用来模拟网络延迟. -----------------------------------------
2017-06-20 14:56:23 976
原创 java多线程之创建和启动线程
1.创建和启动线程传统有两种方式:(还有一种不常用)方式1:继承Thread类;方式2:实现Runnable接口;----------------------------------------------------------------线程类(java.lang.Thread): Thread类和Thread的子类才能称之为线程类. 阅读API.别忘了主线程(ma
2017-06-20 13:54:59 474
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人