![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础学习笔记
文章平均质量分 63
Java基础的学习
淇水汤汤
众生皆苦,但我是草莓味的。
展开
-
Java学习笔记之--------线程(四)多线程的实现
Java中实现多线程,常用的方法有三种:通过创建Thread类的实例来实现,通过Runnable接口实现,通过Callable接口实现。1.通过创建Thread类的实例来实现在Java中负责线程的这个功能的是java.lang.Thread这个类,可以通过创建Thread的实例来创建新的线程,每个线程都是通过某个特定的Thread对象所对应的方法run()来完成其操作的,方法run()称为线程...原创 2018-10-08 14:42:20 · 134 阅读 · 0 评论 -
Java学习笔记之--------网络编程之Socket通信----聊天室实现
Socket通信网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。基于TCP/IP协议,建立稳定的点对点的通信。特点:实时、快速、安全性高、占用系统资源多、效率低。通常也称作"套接字",套接字是一种进程间的数据交换机制。这些进程既可以在同一机器上,也可以在通过网络连接的不同机器上。换句话说,套接字起到通信端点的作用。单个套接字是一个端点,而一对套...原创 2018-11-14 14:09:58 · 343 阅读 · 0 评论 -
Java学习笔记之--------IO流之基本数据类型处理流
基本数据类型处理流(提供了可以获取所有Java数据类型的方法+String):输入流:DataInputStream输出流:DataOutputStream下面为实现文件读取的Demo:public class DataDemo02 { public static void main(String[] args) throws IOException { ...原创 2018-11-12 16:56:02 · 344 阅读 · 0 评论 -
Java学习笔记之--------IO流之对象处理流
对象处理流输入流:ObjectInputStream readObject(反序列化)输出流:ObjectOutputStream writeObject(序列化)注意:(1) 先序列化后反序列化,反序列化顺序必须与序列化一致。(2) 不是所有的对象都可以序列化,实现了java.io.Serializable接口的才可以。也不是所有的属性都需要序列化,用transient关...原创 2018-11-13 09:40:27 · 204 阅读 · 0 评论 -
Java学习笔记之--------IO流之打印流
打印流三个常量:1.System.in 输入流2.System.out 输出流:调试代码,打印日志3.System.err 打印出的颜色是红色的 重定向setIn()setOut()setErr() 下面为Demo:public class PrintStreamDemo01 { public static void main(String[] ...原创 2018-11-13 09:40:08 · 159 阅读 · 0 评论 -
Java学习笔记之--------xml文件解析
XML可扩展标记语言:eXtensible Markup Language。是一种简单的数据存储语言。使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然可扩展标记语言占用的空间比二进制数据要占用更多的空间,但可扩展标记语言极其简单易于掌握和使用。基本的解析方式有两种:SAX:基于事件流的解析。DOM:基于xml文档树结构的解析。常见的四种解析方式:1.DOM...原创 2018-11-22 10:31:54 · 139 阅读 · 0 评论 -
Java学习笔记之--------HTTP协议
协议协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。不同层之间定义不同的协议:应用层:HTTP、FTP、TELNET、SNMP、DNS。传输层:TCP、UDP。网络层:IP。HTTP(HyperText Transfer Protocol 超文本传输协议)是网络应用层的协...原创 2018-11-23 18:48:39 · 183 阅读 · 0 评论 -
Java学习笔记之--------容器类及部分底层代码实现(Collection、List、Set、Queue,Map、HashMap、HashSet)
容器容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。Java中的容器类主要有Collection和Ma...原创 2018-12-04 15:48:00 · 359 阅读 · 0 评论 -
Java学习笔记之--------Class类介绍
Class类介绍在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。java.lang.Class类十分特殊,用来表示Java中类型(class / interface / enum / annotation / primitive type / void)本身。...原创 2018-12-27 16:28:20 · 182 阅读 · 0 评论 -
Java学习笔记之--------反射
Java的动态性Java的动态性主要在以下几个功能上体现:反射机制,动态编译,动态执行JavaScript代码,动态字节码操作。动态语言程序运行时,可以改变程序结构或者变量类型。动态语言有:Python、ruby、JavaScript等。C、C++、Java不是动态语言,但是Java有一定的动态性,我们可以利用反射机制、字节码操作获得类似动态语言的特征。Java的动态性让编程更加灵...原创 2018-12-27 18:10:44 · 179 阅读 · 0 评论 -
Java学习笔记之--------注解(Annotation)
注解的定义注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。注解的作用注解不是程序本身,但是可以对程序做出解释(这一点跟注释没什么区别)。可以被其它程序(比如编译器)读取(注解信息处理流程,是注解和注释的重大...原创 2018-12-18 11:56:35 · 258 阅读 · 0 评论 -
Java学习笔记之--------IO流之转换流
转换流字节流转换为字符流,处理乱码(编码集、解码集)。编码:将字符转换为二进制。解码:将二进制转换为字符。乱码的两个可能原因:编码与解码的字符集不统一,字节缺少长度丢失。有关乱码的问题,Demo如下:public class ConvertDemo01 { public static void main(String[] args) { Stri...原创 2018-11-12 16:21:08 · 176 阅读 · 0 评论 -
Java学习笔记之--------IO流之缓冲流
缓冲流字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,readLine(),BufferedWriter,newLine()我们实现字节流文件拷贝+缓冲流,提高性能:public class BufferedByteDemo { public static void main(Strin...原创 2018-11-12 16:11:48 · 188 阅读 · 0 评论 -
Java学习笔记之--------IO流之字符流实现纯文本拷贝
字符流输入流:Reader,FileReader输出流:Writer,FileWriter字符流只能处理纯文本,全部为可见字符(.txt或者.html)。下面实现纯文本的拷贝:public class CopyFileDemo { public static void main(String[] args) { //创建源 File src...原创 2018-11-12 15:32:46 · 403 阅读 · 0 评论 -
Java学习笔记之--------线程(一)线程的多种状态
什么是线程线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指令运行时的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。线程的状态线程的状态有五种:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。如图所示。新建状态(New):用new关键字和Thread类或其子类建立一个线程对象后,该线程就处于新生...原创 2018-10-08 14:45:07 · 103 阅读 · 0 评论 -
Java学习笔记之--------线程(二)线程基本信息
线程常用的几个方法如下:isAlive() :测试线程是否处于活动状态。setName(String name) :改变线程名称,使之与参数 name 相同。getName() :返回该线程的名称。setPriority(int newPriority) :更改线程的优先级。getPriority() :返回线程的优先级。currentThread() :返回对当前正在执行的线程对象的...原创 2018-10-08 14:46:12 · 100 阅读 · 0 评论 -
Java学习笔记之--------线程(三)线程的同步
线程同步线程同步是多个线程同时访问同一资源,等待资源访问结束。由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是synchronized关键字。它包括两种方法,...原创 2018-10-08 14:47:12 · 101 阅读 · 0 评论 -
Java学习笔记之--------线程(五)多线程之生产者消费者模式
生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证...原创 2018-10-08 14:48:00 · 153 阅读 · 0 评论 -
Java学习笔记之--------线程(六)线程任务调度
任务调度Timer定时类:一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。schedule(TimerTask task,Date time):安排在指定的时间执行指定的任务。schedule(TimerTask task,Date firstTime,long period):安排指定的任务在指定的时间开始进行重复的固定延迟执行。TimerTas...原创 2018-10-09 09:28:20 · 171 阅读 · 0 评论 -
Java学习笔记之--------网络编程的概念
什么是计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。计算机网络的主要功能资源共享信息传输与集中处理均衡负荷与分布处理综合信息服务(www/综合业务数字网络ISDN)什么是网络通信协议计算机网络中实现通信必须有一些约定即通信协议,对速率、传输...原创 2018-11-13 14:32:25 · 163 阅读 · 0 评论 -
Java学习笔记之--------网络编程之InetAddress
java.net.InetAddress:此类表示互联网协议 (IP) 地址。封装计算机的IP地址和DNS,没有端口。getHostName():获取此IP地址的主机名。getHostAddress():返回IP地址字符串(以文本表现形式)。我们可以封装端口:public class InetSocketDemo01 { public static void main(S...原创 2018-11-13 15:02:30 · 189 阅读 · 0 评论 -
Java学习笔记之--------IO流之File类的常用方法
File类:文件和目录路径名的抽象表示形式。一个File对象可以代表一个文件或目录,但不是完全对应的。建立File对象不会对文件系统产生影响。(java.io.File)user.dir:系统根据用户的工作路径来解释相对路径。1.文件名的常用方法getName():获取文件名。getPath():获取路径,如果是绝对路径,则返回完整路径,否则返回相对路径。getAbsolute...原创 2018-11-12 11:28:05 · 184 阅读 · 0 评论 -
Java学习笔记之--------IO流的原理及分类
IO流的原理在Java程序中,对于数据的输入/输出操作以“流”(stream)方式进行。J2SDK提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。 IO流的分类按照流的方向:输入流:数据源到程序。输出流:程序到目的地。按照数据处理单元分:字节流:按照字节读取数据(可以处理一切文件,包括纯文本、doc、音频、视频等等)。字符流:...原创 2018-11-12 13:35:46 · 304 阅读 · 0 评论 -
Java学习笔记之--------IO流之字节流实现文件拷贝
字节流输入流:InputStream,FileInputStream | read(byte[] b),read(byte[] b, int off, int len)+close输出流:OutputStream,FileOutputStream | write(byte[] b),write(byte[] b, int off, int len)+close我们用字节流的输入流和输出...原创 2018-11-12 15:25:32 · 156 阅读 · 0 评论 -
Java学习笔记之--------动态编译
动态编译动态编译是6.0引入的功能。动态编译应用场景:可以做一个浏览器端编写Java代码,上传服务器编译和运行的在线评测系统,服务器动态加载某些类文件进行编译。动态编译的两种方法:通过Runtime调用javac,启动新的进程去操作。 Runtime run = Runtime.getRuntime(); Process process = ru...原创 2019-01-16 18:16:49 · 197 阅读 · 0 评论