00-OSI七层模型 1. 计算机网络为实现资源共享和信息传递,通过通信线路连接起来的若干主机(Host)。 互联网:Internet 点与点相连万维网:WWW World Wide Web 端与端相连物联网:IoT Internet of things 物与物相连网络编程:让计算机与计算机之间建立连接、进行通信。 2. 网络模型OSI(Oper System Interconnection)开放式系统互联。 由 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 07_网络编程 #JavaSE #OSI #TCP/IP
01-Socket网络编程 1. InetAddress类位置:java.net 构造方法为默认default(包内可见),通过类内静态方法获取对象 常用方法: 1234567891011121314151617181920byte[] getAddress()返回此 InetAddress对象的原始IP地址。static InetAddress[] getAllByName(String host)给定主机的名称,根据 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 07_网络编程 #网络 #JavaSE #Socket
02-模拟FTP下载文件 区别 字符流 与 字节流 各自的功能和过滤流的使用场景。 Server 端 IO 流1234567891011121314151617181920212223242526272829303132333435363738394041424344try { // 字符流:创建 Clinet/Server 交互输入输出字符流(收发字符串) BufferedReader br = new B 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 07_网络编程 #JavaSE #Socket #FTP
01-properties读写 1. “.properties”配置文件介绍后缀名为.properties是一种属性配置文件。这种文件以key=value格式存储内容,Java中可以使用Properties类来读取这个文件String value=p.getProperty(key);就能得到对应的数据,一般这个文件作为一些参数的存储,代码就可以灵活一点。 用于适应多语言环境,随着系统的语言环境的变化,读取 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 06_文件和流 #JavaSE #File
02-字节流读写 1. 字节输入输出类 2. 抽象父类:InputStream & OutputStreamInputStream字节输入流: 123public abstract class InputStream extends Object implements Closeable 这个抽象类是表示输入字节流的所有类的超类。需要定义InputStream子类的应用InputStream必 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 06_文件和流 #JavaSE #字节流
04-File文件读写 1. File类文件和目录路径名的抽象表示形式,主要用于获取文件的相关属性以及创建文件或目录。 123public class File extends Object implements Serializable, Comparable<File> 构造方法:没有无参构造。 12345678File(File parent, String child)从父抽象路径名和子路 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 06_文件和流 #JavaSE #File
03-字符流读写 1. 基本字符输入输出类结构 2. 抽象父类:Writer & ReaderWriter类 123public abstract class Writer extends Object implements Appendable, Closeable, Flushable 构造方法: 1234protected Writer()创建一个新的字符流的作者,其关键部分将同步在“作 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 06_文件和流 #JavaSE #字符流
01-线程 1. 线程创建进程:程序静止的,真正运行时的程序,才被称为进程。线程:轻量级进程(Light Weight Process),程序中的一个顺序控制流程,同时也是CPU的基本调度单位,进程由1个或多个线程组成,彼此间完成不同的工作,交替执行,称为多线程。 JVM,**Java虚拟机是一个进程(单进程)**,当中默认包含主线程(main),可通过代码创建多个独立线程,与main并发执行。 线程组 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #线程 #JavaSE
02-线程池 1. 线程池概念现有问题: 线程是宝贵的内存资源、单个线程约占1MB的空间,过多分配易造成内存溢出; 频繁的创建及销毁会增加虚拟机回收频率、资源开销,造成程序性能下降。 线程池: 线程容器,可设定线程分配的数量上限; 将预先创建的线程对象存入池中,并重用线程池中的线程对象; 避免频繁的创建和销毁。 2. 线程池原理将任务提交给线程池,由线程池分配线程、运行任务,并在当前任务结束后复用线程。 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #JavaSE #线程池
03-锁种类 1.1 乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低。每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出,然后加锁操作(比较跟上一次的修改版本,如果一样则更新),如果失败则要重复读-比较-写的操作。Java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是一种更新的原子操作,比较当前值跟传入值是 2016-04-28 02_编程语言 > 01_Java > 01_JavaSE > 05_并发和锁 #JavaSE #锁