![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
潭州学院~~JavaSE
JavaSe部分包括:
1.Java语言基础
2.数组
3.面向对象
4.异常
5.常用类
6.集合
7.IO流
8.线程
9. 网络编程
10.反射
小乔与你同在
编程是一个漫长和精彩的路程,你要加油,加油,加油。
展开
-
反射--案例:笔记本电脑的配置设备
(1)笔记本电脑public class Computer { // 电脑开启 public void run() { System.out.println("电脑开启"); } // 使用外围设备 public void usbUsb(USB usb) { if (usb != null) { usb.open(); usb.close(); } } ...原创 2019-11-17 21:24:27 · 211 阅读 · 0 评论 -
反射--获取构造器。字段、方法(普通方法、静态方法)
1 获取构造器public class Relect_getContruct {/* * 需求:通过指定的构造方法初始化对象 * 总结:(1)通常被反射的类都要提供无参的构造方法,通过Class.forName(className);调用类的无参构造 * (2)调用类的有参构造方法,要使用构造器Constructor对象调用构造方法。 */ public static void ma...原创 2019-11-17 21:17:05 · 235 阅读 · 0 评论 -
反射--反射基础知识、获取字节码对象
1 引言维护程序时一般不会去修改程序源码。在设计软件时,会预先设计一个接口,以改进后期维护性差的问题。(1)应用程序写好之后,后期出现的接口子类(实现类)无法直接在应用程序中创建子类对象,且后期维护时创建的类是不确定的?解决办法:既然子类不确定,可以通过对外提供一个配置文件的形式,将这些不确定的信息放在一个文件中。只要该程序在设计时定义好如何读取配置文件信息即可。(2)源程序怎么调用配置文...原创 2019-11-17 21:06:24 · 153 阅读 · 0 评论 -
网络编程--TCP(实现客户端与服务端无限次收发过程)
需求: 客户端通过键盘录入英文数据, 把数据发送到服务端,服务端将接收到的数据显示到控制台上,并且将这些数据转成大写之后再返回给客户端,当客户端输入的是over的时候,则结束。1 客户端public class TCPClient03 { public static void main(String[] args) throws UnknownHostException, IOExcepti...原创 2019-11-13 06:50:32 · 583 阅读 · 0 评论 -
网络编程--TCP(实现客户端和服务端的收发过程)
1 客户端public class TCPClient02 { /*实现客户端和服务端的收发*/ public static void main(String[] args) throws Exception { System.out.println("TCP客户端运行。。。。"); //创建客户端Socket,要明确服务端的端口和IP地址 Socket s = new Sock...原创 2019-11-13 06:44:46 · 818 阅读 · 0 评论 -
网络连接--TCP(传输控制协议)
1 客户端与服务端的数据传输(1)必须保证连接通畅,速度比较慢(2)数据安全可靠2 一个服务端与一个客户端(服务端只读客户端传输的内容)public class TCPClient { /* * 客户端: 通过TCP传输协议将数据发送给服务器端 */ public static void main(String[] args) throws Exception { Sys...原创 2019-11-12 23:57:26 · 105 阅读 · 0 评论 -
网络编程--UDP协议
UDP——数据报文协议特点:(1)优点是无连接包投递,速度比较快(2)不能对包投递做出保证1 发送端思路:1.构造UDP发送端的Socket2.将数据封装到数据包对象中3.发送数据4.关闭资源package com.tanzhou.net.ip;import java.net.DatagramPacket;import java.net.DatagramSocket;im...原创 2019-11-12 11:51:41 · 132 阅读 · 0 评论 -
网络编程--IP地址
1 InetAddress类// 获取本地主机地址对象 InetAddress ip = InetAddress.getLocalHost(); // getHostName() :获取此 IP 地址的主机名 // getHostAddress() :返回字符串格式的原始 IP 地址。 System.out.println(ip.getHostName()+"=="+ip.get...原创 2019-11-12 18:15:14 · 423 阅读 · 0 评论 -
线程--Join()的用法、yield()的用法
1 join的用法void join() 等待该线程终止。package section_08;public class SingleTest { public static void main(String[] args) { JoinDemo jd = new JoinD...原创 2019-11-11 21:10:14 · 148 阅读 · 0 评论 -
线程--sleep()和wait()方法比较、线程停止
1 sleep() 和 wait()void wait()在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。static void sleep(long millis)在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。相同点:可以让线程处于冻结状态不同点:(1)sleep()必须要指定时间,wait()可以指定时间,也可以不指定...原创 2019-11-11 19:20:44 · 325 阅读 · 0 评论 -
线程--多生产多消费(Lock)
上一篇文章使用synchronized 方法和语句会发现,本方只能唤醒所有线程,程序性能较低。是因为唤醒的锁对象不具有确定性。因此java就引进了锁Lock的概念。1 接口Lock 锁是控制多个线程对共享资源进行访问的工具。通常,...原创 2019-11-08 07:00:15 · 130 阅读 · 0 评论 -
线程--多生产多消费(synchronized方法)
案例:多生产与多消费在实际生活中,更多的是面包会生产多个、或消费多个。1 代码package com.java.example2;// 一、测试类public class ThreadDemo { public static void main(String[] args) { // 1.创建资源对象---》面包 Resource r = new Resource(); ...原创 2019-11-08 05:51:33 · 119 阅读 · 0 评论 -
线程--单消费和单生产
1 案例:生产与消费 生产与消费同时执行(多线程),但是执行的任务不同,处理的资源一样。生产者每生产一个消费者就消费一个。package com.java.example; // 测试类public class Thread01 { public static void main(String[] ar...原创 2019-11-07 23:37:52 · 121 阅读 · 0 评论 -
线程--同步synchronized(同步方法)
1 同步方法 将关键字synchronized写在方法中,同步方法的锁是this,因为方法必须要被对象调用。锁即对象监视器。验证同步方法的锁是否是this(this代表当前对象): 在同一个线程任务代码中写一个同步代码块 ,再写一...原创 2019-11-07 22:54:14 · 116 阅读 · 0 评论 -
线程--同步synchronized(同步代码块)
1 代码示例package com.java.thread;public class Thread03 {/*同步代码块 */ public static void main(String[] args) { // 创建Runnable接口实现类对象 Ticket t = new Ticket(); // 创建线程对象,四个售票窗口 Thread t1 = new Thr...原创 2019-11-07 22:45:34 · 200 阅读 · 0 评论 -
线程--线程的状态
原创 2019-11-07 23:26:45 · 59 阅读 · 0 评论 -
线程--创建线程的两种方法(方法二:实现Runnable接口)
1 代码示例package com.java.thread;/* * 创建线程的第二种方式:实现Runnable接口 */public class Thread02 { public static void main(String[] args) { // 创建Runnable实例对象 Demo01 d = new Demo01("阳光"); // 创建线程对象,将Ru...原创 2019-11-07 22:36:16 · 1548 阅读 · 0 评论 -
线程--创建线程的两种方法(方法一:继承Thread类)
1.1 思路整理(1)继承Thread类为什么要继承Thread类? 因为Thread类是描述线程事物的,具备线程应该有的功能。为什么不直接创建线程对象然后调用start方法呢? Thread t = new Thread(); t.start(); 这样做没有错,但是如果这样写的话,start方法调用的是Thread类中的run方法,而这个线程类中的run方法...原创 2019-11-07 22:26:23 · 453 阅读 · 0 评论 -
线程--线程与进程、中央处理器CPU
1 进程和线程(1)进程:正在执行中的程序。如360安全管家。其实是应用程序在内存中运行的空间。(2)线程:进程中的一个执行单元,负责程序的运行。如电脑体检,电脑清理等等各种独立的功能,执行相对应的代码。一个进程中至少有一个线程。代码由进程来执行。 多线程:可以实现多部分程序同时执行(并发)。2 中央处理器CPU&#160其功能主要是解释计算机指令以及处理计算机软件中的数...原创 2019-11-07 22:00:22 · 210 阅读 · 0 评论 -
IO流--继承关系总结
1.字节流(1)InputStream类: FileInputStream类:文件输入流 &nbs...原创 2019-11-13 23:04:00 · 363 阅读 · 0 评论 -
IO流--对象流(序列化与反序列化)
1 序列化与反序列化ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。只能将支持 java.io.Serializable 接口的对象写入流中,即对象类要实现Serializable接口来完成序列化。同时必须使用与写入对象时相同的类...原创 2019-11-13 22:52:12 · 127 阅读 · 0 评论 -
IO流--打印流(字节打印流、字符打印流)
1 打印流PrintWriter与PrintStream可以直接操作输入流和文件。(1)写入字节:PrintStream 类(2)写入字符:PrintWriter类如果使用Writer方法写数据,查看数据时会查询编码表,如写入97,查看为a;若使用print方法写数据,则会原样输出。public static void main(String[] args) throws IOExce...原创 2019-11-13 22:40:21 · 478 阅读 · 0 评论 -
IO流--键盘录入(Scanner类)
Scanner 类来获取用户的输入。在运行的时候控制台处于一个堵塞状态,等待用户的输入。nextLine()和next()的区别next()特点:1.会自动消去空格之后的字符,返回空格之前的字符2.next()不能得到带有空格的字符串nextLine()特点:1.以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。2.可以获得空白....原创 2019-11-18 20:36:11 · 221 阅读 · 0 评论 -
IO流--标准输入输出流、键盘录入
1 标准输入输出流System类中的字段:in,out。它们各代表了系统标准的输入和输出设备。默认输入设备是键盘,输出设备是显示器。(1)public static final InputStream in;“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。(2)public static final PrintStream ...原创 2019-11-12 14:53:58 · 362 阅读 · 0 评论 -
IO流--对IO流异常的捕获处理
public static void main(String[] args) { File file = new File("tempfile1" + File.separator + "coco2.txt"); // 现在try外面定义好输出流的引用 FileOutputStream fos = null; try { fos = new FileOutputStream(...原创 2019-11-13 22:43:03 · 433 阅读 · 0 评论 -
IO流--字符流(字符输入输出流、字符转换流、缓冲字符输入输出流)
1 引言一个英文字符占据一个字节,一个汉字占据两个字节。如果对文字通过文件字节输入输出流技术进行读写操作的话,一个汉字占据两个字节。而字节流一次读取一个字节或者多个字节,都会造成一个汉字的两个字节分开。同时,汉字转成字节的int值是大于128的,使用字节流后因为没有编码表是无法在解析为汉字的。因此,就引入了字符流。解码和转码:文字转成二进制--------编码二进制转成文字--------...原创 2019-11-13 22:33:25 · 345 阅读 · 0 评论 -
IO流--字节流(字节输入输出流、文件字节输出输入流、缓冲字节输入输出流)
数据在硬盘中都是以二进制形式来进行存储。存储单位转换如下:1byte = 8bit1kb = 1024 byte1mb = 1024 kb1gb = 1024mb1tb = 1024 gb字节流作用:不仅可以操作字符,还可以操作其他媒体文件。1 字节输入输出流1.1 OutputStream类定义:此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接...原创 2019-11-13 22:13:31 · 374 阅读 · 0 评论 -
IO流--文件和文件夹的过滤(三种方法)
一、文件的过滤文件的过滤就是获得当前目录下的某一个子目录或子文件。方法有以下三种:1、if判断过滤法思路:(1)将目录放在一个数组中(File.listFiles)(2)对元素进行遍历(增强for循环)(3)判断筛选(if判断)。public static void main(String[] args) throws Exception { // 创建一个File对象,明确它的地...原创 2019-03-11 17:06:45 · 1099 阅读 · 0 评论 -
IO流--递归
1 递归定义:方法自己调用自己(1)递归的本质就是方法重复利用,但是每次方法调用的参数都会发生变化。(2)使用递归一定要给出跳出方法条件,否则会出现栈溢出StackOverflowError(3)使用递归时,方法调用次数过多也容易造成栈溢出溢出。public static void main(String[] args) { int sum = getSum(4); System...原创 2019-11-13 21:39:10 · 101 阅读 · 0 评论 -
IO流--Java.IO包、对文件的操作
一、Java.IO包1定义i:input输入 o:output输出java.io包也是Java内置的包,其中包含一系列对文件和目录的属性进行操作,对文件进行读写操作的类。2 作用程序中将数据输出到程序以外或在程序以外将数据输入到程序内。也就是程序与外界的数据交流。可以输出到控制台,文件,或网络上的其他计算机上。3 引言程序结束之后,数据从内存中释放。数据在内存中只能临时存储。想要对...原创 2019-11-13 21:36:00 · 212 阅读 · 0 评论 -
集合--hashCode和equals在Set中保证对象的唯一性
一、前言hashCode()方法和equal()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致,那么equal()既然已经能实现对比的功能了,为什么还要hashCode()呢?因为重写的equal()里一般比较的比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高,那么hashCode()既然效率这么高为什么...原创 2019-03-07 10:59:29 · 535 阅读 · 0 评论 -
集合--案例:返回字符串中每个字母出现的次数
原创 2019-11-29 19:10:01 · 87 阅读 · 0 评论 -
集合--工具类(Collection类、Arrays类)
1 Collections工具类Collections类是集合框架中用于操作集合对象的工具类,内部提供的方法都为静态方法,可直接静态调用。List list = new ArrayList();list.add("hs");list.add("df");list.add("yy");// List没有指定泛型,list添加的是Object对象类型。String strMax = (S...原创 2019-11-29 18:55:25 · 159 阅读 · 0 评论 -
集合--双列(Map)集合
1 接口 Map<K,V>Map类型集合每个元素值都包含两个对象:<键,值>。并且键在Map中不能有重复对象。类型参数:K - 此映射所维护的键的类型V - 映射值的类型将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。特点:(1)存储的是键值对(键,值)(1)集合中键唯一小技巧:在分析需求时,出现了对应关系。(1) 如果对应关系...原创 2019-11-29 19:08:55 · 124 阅读 · 0 评论 -
集合--增强for循环、泛型
1 增强for循环(1)格式:for(数据类型 变量:遍历对象(集合或数组)){语句}变量就等价于next()方法返回的结果(2)原理:增强for循环底部原理仍然是调用了迭代器。(3)好处及弊端:简化了迭代器代码。只能做遍历元素操作,不能够在遍历的过程中对集合元素做其它操作。public static void main(String[] args) { // 创建对象并添加 ...原创 2019-11-29 18:51:32 · 350 阅读 · 0 评论 -
集合--Set接口和List接口
JDK 不提供此接口(Collection)的任何直接实现:它提供更具体的子接口(如 Set 和 List)实现。Collection接口定义的是集合种类的共性内容,最基础的功能。1 List接口有序的 collection(也称为序列)。用户可以根据元素的整数索引(在列表中的位置)访问元素(有下标);允许有重复的元素;List接口普提供了增删改查动作:(1)增加:add(element...原创 2019-11-29 18:34:51 · 459 阅读 · 0 评论 -
集合--Collection集合
场景当数据多了要进行存储时,需要一个容器,存储固定长度的数据可以使用数组。但是如果数据的个数不确定,再使用数组就较为繁杂。Java就引入了另外一个可变的容器 ---- 集合在1.2版本之后,随着功能和需求的增多,将其不同种类的共性向上抽取,形成了体系,就出现了集合框架,有了更多种类的集合容器,用来完成不同的需求。这些集合容器是通过数据结构(存储数据的一种方式)来进行区分。集合框架的最顶层是一个...原创 2019-11-29 09:49:26 · 115 阅读 · 0 评论 -
常用类--日期和时间类
java.util包是Java内置的一个工具包,其中包含 collection 框架、日期和时间和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。不会默认导入,如果需要使用声明语句: import java.util.*1 System类//获取当前系统时间,返回一毫秒为单位的时间 long time = System.currentTimeMillis(); System...原创 2019-11-28 09:46:05 · 114 阅读 · 0 评论 -
常用类--Integer 类型对象之间大小比较
1. 使用 new Integer() 创建的对象 :首先,我们知道,在java中,基本类型之间是可以做大小比较的,例如int i=1,int j=2,是可以直接使用关系运算符“&lt;”、“&gt;”、“==”等符号来做比较的。但在实际开发中,基本类型的包装类更为常用,那么包装类型的比较运算是如何呢?在main方法中执行下面代码: Integer i = new Integer(100...原创 2019-03-05 19:47:52 · 1608 阅读 · 0 评论 -
常用类--包装类
引言通过文本框获取用户输入的数字数据,得到的都是字符串,如果想要对字符串中的数字进行运算的话,必须要将字符串转成对应的数字格式。Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,于是在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类。1 包装类(wrapper)定义:将java中的基本数据类型值封装成了对象。基本...原创 2019-11-28 09:34:37 · 102 阅读 · 0 评论