笔记
文章平均质量分 65
旭子在努力
这个作者很懒,什么都没留下…
展开
-
TCP通信程序(笔记)
一.TCP通信的概述二.TCP通信的客户端(重点)package com.itheima.demo03TCP;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/* 创建TCP通信的客户端: 作用:和服务器经过3次握手建立一个连接通路,给服务器发送数据,读取服务器发送的数据 表示客户端的类:原创 2022-03-31 14:42:11 · 828 阅读 · 0 评论 -
网络编程入门(笔记)
网络编程三要素:协议,IP地址,端口号一.软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。二.网络通信协议协议就是规则:就是计算机通信需要遵守的udp:面向无连接的协议,通信的双方不用建立连接,可以直接发送数据原创 2022-03-31 13:52:38 · 694 阅读 · 0 评论 -
Junit单元测试(笔记)
一.Junit介绍Junit是一个Java语言的单元测试框架,简单理解为可以用于取代java的(部分)main方法。Junit属于第三方工具,需要导入jar包后使用。二.Junit的基本使用(重点)a.在当前模块下创建lib文件夹b.把junit的jar包,拷贝到lib的文件夹中c.把jar包添加到图书馆中package com.itheima.demo01Junit;import org.junit.Test;/* junit的作用:可以单独的运行某一个方法(对方法进原创 2022-03-31 13:47:27 · 543 阅读 · 0 评论 -
序列化流(集合)
一.序列化流和反序列流的概述二.ObjectOutputStream:对象的序列化流(重点)package com.itheima.demo07SerializableStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;/* java.io.ObjectOutputStream:对象的序列化流 作用:把对象以流的方式写入到文件原创 2022-03-30 20:21:12 · 308 阅读 · 0 评论 -
转换流(笔记)
一.编码表**就是生活中的文字和计算机中文字的对应关系表**a-->97-->01100001==>存储到计算机中中-->20013-->0010000000001011==>存储到计算机中**编码:把能看懂的文字,转换为看不懂的文字(字符==>字节)****解码:把看不懂的文字,转换为能看懂的文字(字节==>字符)**常用的编码表:**ASCII字符集** (美国信息交换标准代码):英文,数字,标点符号和计算机中文字的对应关系原创 2022-03-30 20:14:47 · 387 阅读 · 0 评论 -
缓冲流(笔记)
一.概述缓冲流:提高读写数据的效率二.BufferedInputStream:字节缓冲输入流(重点)/*java.util.BufferedInputStream:字节缓冲输入流 extends InputStream:字节输入流BufferedInputStream可以使用继承自InputStream的共性方法int read() 一次读取一个字节int read(byte[] b) 一次读取多个字节void close() 关闭此输入流并释放与该流关联的所有系统资源。Buffer原创 2022-03-30 20:02:57 · 254 阅读 · 0 评论 -
Properties集合(笔记)
一.Properties集合的基本使用package com.itheima.demo04Properties;import java.util.Properties;import java.util.Set;/* java.util.Properties集合 extends Hashtable<k,v>集合 implements Map<k,v>接口 1.Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。原创 2022-03-30 19:55:27 · 562 阅读 · 0 评论 -
IO资源的处理(重点)(笔记)
一.JDK7前异常处理package com.itheima.demo03tryCatch;import java.io.FileWriter;import java.io.IOException;/* JDK7之前使用try...catch...finally处理异常 格式: try{ //可能产生异常的代码 }catch(定义一个异常相关的变量){ //异常的处理逻辑 }原创 2022-03-30 19:50:39 · 270 阅读 · 0 评论 -
字符流(笔记)
一.使用字节输入流读取含有中文的文件package com.itheima.demo01Reader;import java.io.FileInputStream;import java.io.IOException;/* 使用字节输入流读取含有中文的文件 IDEA中默认的使用的编码表是UTF-8编码表:在UTF-8编码中一个中文占用3个字节 */public class Demo01FileInputStream { public static void main原创 2022-03-30 19:47:47 · 169 阅读 · 0 评论 -
字节流(笔记)
一.字节输出流的介绍(了解)java.io.OutputStream类:字节输出流 此抽象类是表示输出字节流的所有类的超类。 OutputStream类是所有字节输出流的父类,里边定义了所有字节输出流共性成员方法,任意的子类都可以使用OutputStream类中定义的共性成员方法: public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 public void原创 2022-03-29 21:31:43 · 860 阅读 · 0 评论 -
递归(笔记)
一.递归的概述递归:方法自己调用自己分类:1.直接递归public void a(){a();}2.间接递归public void a(){b();}public void b(){a();}注意事项:1.递归必须有结束的条件,保证方法自己调用自己能停止下来,否则会抛出栈内存溢出的错误2.递归有结束的条件,但是递归的次数也不能太多了,否则会抛出栈内存溢出的错误3.构造方法禁止递归什么时候使用递归:当我们频繁的调用一个方法,方法的主体不变,方法的参数每次发生变化,就可以原创 2022-03-29 20:58:40 · 181 阅读 · 0 评论 -
File类(笔记)
一.File类的介绍java.io.File类文件和目录路径名的抽象表示形式。把计算机中的文件和文件夹(目录)封装为了File对象,就可以使用File对象来操作这些文件和文件夹我们可以使用File对象创建文件和文件夹我们可以使用File对象删除文件和文件夹我们可以使用File对象获取文件和文件夹的路径我们可以使用File对象获取文件的大小(单位是字节)我们可以使用File对象遍历文件夹记住3个相关的单词:1.file:文件2.directory:文件夹(目录)3.path:路径原创 2022-03-29 20:55:03 · 231 阅读 · 0 评论 -
Stream流(笔记)
一.Sream流概述我们可以把集合|数组,转换为Stream流,使用Stream流中的方法,对集合|数组进行操作作用:简化代码,使我们的代码更加优雅2.Stream流的基本体验需求:List list= new ArrayList<>();Collections.addAll(list,“张无忌”,“周芷若”,“赵敏”,“张三丰”,“张翠山”,“灭绝师太”,“张三”);1.首先晒选出所有姓张的人,把姓张的人存储到一个新的集合中2.筛选名字中是3个字的人,把名字是3个字的人存储到一原创 2022-03-27 18:29:56 · 1354 阅读 · 0 评论 -
Lambda表达式(重点)(笔记)
一.函数式编程思想概述面向对象思想: 做一件事情,找一个能够解决这个事情的对象**,调用对象的方法来完成这件事情函数式编程思想: 重视的是结果**,怎么做事情,不重视完成的过程,找谁来做**二.使用Lambda表达式简化匿名内部类(重点)package com.itheima.demo04lambda;/* 使用Lambda表达式简化多线程匿名内部类 */public class Demo01Lambda { public static void main(Stri原创 2022-03-27 18:15:51 · 881 阅读 · 2 评论 -
定时器(笔记)
一.定时器的概述定时器,可以设置线程在某个时间执行某件事情,或者某个时间开始,每间隔指定的时间反复的做某件事情java.util.Timer类:是一个描述定时器的类一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。构造方法:Timer() 创建一个新计时器。成员方法:1.void cancel() 终止此计时器,丢弃所有当前已安排的任务。注意,在此计时器调用的计时器任务的 run 方法内调用此方法,就可以绝对确保正在执行的任务是此计时器所执行的最后一个原创 2022-03-27 12:03:31 · 925 阅读 · 0 评论 -
线程状态(笔记)
一.线程状态概述重点:必须记住6种线程状态的名称新建(NEW):刚刚创建出来但是没有运行的线程处于此状态。运行(RUNNABLE):调用start方法启动后的线程处于运行状态。受阻塞(BLOCKED):等待获取锁的线程处于此状态。无限等待(WAITING):当线程调用wait()方法时,线程会处于无限等待状态【没有时间的等待】计时等待(睡眠)(TIMED_WAITING):当线程调用wait(毫秒值)方法或sleep(毫秒值)时,线程会处于计时等待状态【有时间的等待】退出(死亡)(TERMI原创 2022-03-27 12:01:29 · 140 阅读 · 0 评论 -
线程池(笔记)
一.线程池思想二.线程池相关类和接口概述工厂类 工具类 全是静态方法java.util.concurrent.Executors:是一个生产线程池的工厂类工厂类中的方法都是静态的,通过类名可以直接使用static ExecutorService newFixedThreadPool(int nThreads) 创建一个可重用固定线程数的线程池参数:int nThreads:传递创建线程池包含的线程数量 传递100,线程池中包含100个线程,传递10000,线程池中包含10000个线原创 2022-03-27 11:02:59 · 378 阅读 · 0 评论 -
并发包(笔记)
在JDK的并发包java.util.concurrent里提供了几个非常有用的并发容器和并发工具类。供我们在多线程开发中进行使用。这些集合和工具类都可以保证高并发的线程安全问题.1.并发List集合_CopyOnWriteArrayList(重点)List集合的特点: 1.是一个有序的集合 2.允许存储重复的元素 3.包含一些带索引的方法1).java.util.concurrent.CopyOnWriteArrayList(类):它是一个“线程安全”的ArrayList,我们之前学习的j原创 2022-03-26 22:06:47 · 298 阅读 · 0 评论 -
synchronized关键字(笔记)
之前我们讲过的AtomicInteger可以对“int类型的变量”做原子操作。但如果需要将“很多行代码”一起作为“原子性”执行——一个线程进入后,必须将所有代码行执行完毕,其它线程才能进入,可以使用synchronized关键字——重量级的同步关键字。AtomicInteger:只能解决一个变量的原子性synchronized:可以解决一段代码的原子性1.售票案例引发的安全性问题(了解)2.售票案例的代码实现(重点)package com.itheima.demo07payTicket;原创 2022-03-26 21:53:08 · 703 阅读 · 0 评论 -
原子类(笔记)
概述:所谓的原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行,多个操作是一个不可以分割的整体(原子)。比如:从张三的账户给李四的账户转1000元,这个动作将包含两个基本的操作:从张三的账户扣除1000元,给李四的账户增加1000元。这两个操作必须符合原子性的要求,要么都成功要么都失败。1.原子类概述概述:java从JDK1.5开始提供了java.util.concurrent.atomic包(简称Atomic包),这个包.原创 2022-03-26 21:25:41 · 410 阅读 · 0 评论 -
volatile关键字(重点)(笔记)
1.volatile解决不可见性package com.itheima.volatileVisible;/* 高并发问题一_不可见性(重点) */public class MyThread extends Thread{ //定义一个静态的成员变量,供所有的线程使用 public static volatile int a = 0; @Override public void run() { System.out.println("Thre原创 2022-03-26 21:12:10 · 198 阅读 · 0 评论 -
高并发及线程安全
1.高并发及线程安全的概念1.高并发:在某个时间点上,有多个线程同时访问某一个资源。例如:双十一,12306 , 秒杀2.线程安全性问题:当多个线程无序的访问同一个资源(例如:同一个变量、同一数据库、同一个文件……),而且访问同一资源的代码不具有“原子性”,这时对这一资源的方法就会产生安全性问题——导致此资源最终的结果是错误。3.高并发所产生的安全性问题主要表现:1).可见性:指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。2).有序性:即程序执行的顺序原创 2022-03-26 21:04:42 · 1566 阅读 · 0 评论 -
多线程(笔记)
1.并发与并行2.进程的概念进入到内存中的执行的程序叫进程3.线程的概念线程:是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程(单线程程序)。一个 进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。4.线程的调度分时调度所有的线程轮流使用cpu的使用权,平均分配每个线程占用cpu的时间抢占式调度优先让优先级高的线程使用cpu,如果线程的优先级相同的,那么会随机选择一个线程执行(线程的随机性),java使用的就是抢占式调度原创 2022-03-24 21:15:42 · 725 阅读 · 0 评论 -
异常介绍(笔记)
1异常介绍2异常体系和分类package com.itheima.demo01Exception;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/* 异常的体系和分类 */public class Demo01 { public static void main(String[] args) { //java.lang.Ex原创 2022-03-24 20:43:07 · 750 阅读 · 0 评论 -
Set接口(笔记)
1.Set接口的介绍(记住)java.util.Set<E>接口 extends Collection<E>接口Set接口的特点:1.不允许存储重复的元素 add(1) add(1)==>集合中只有一个12.不包含带索引的方法,里边的方法和Collection接口一模一样2.HashSet集合的介绍和基本使用(重点)package com.itheima.demo04Set;import java.util.Collections;import java原创 2022-03-23 21:04:14 · 510 阅读 · 0 评论 -
Collections类(笔记)
1.Collections的常用功能(重点)import java.util.Collections;java.util.Collections是集合工具类,用来对集合进行操作。常用方法如下:- public static void shuffle(List<?> list):打乱集合中元素顺序。- public static void sort(List list):根据元素的自然顺序 对指定列表按升序进行排序。注意:以上两个方法的参数,只能传递List集合,对List集合进原创 2022-03-23 20:54:03 · 1254 阅读 · 0 评论 -
内部类(笔记)
1.内部类介绍package com.itheima.demo11innerClass;public class Outer { //外部类的成员变量 int a = 10; //外部类成员方法 public void show(){ System.out.println("外部类Outer的成员方法show"); } //定义成员内部类 public class Inner{ //内部类成员变量原创 2022-03-23 08:45:39 · 74 阅读 · 0 评论 -
List接口的使用
1.List接口的概述2.List接口中常用的方法package com.itheima.demo09List;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/* List接口中常用的方法(重点) List接口中特有的带索引的方法: void add(int index, E element) 在集合的指定索引处,添加一个新元素 E g原创 2022-03-23 08:45:23 · 1809 阅读 · 0 评论 -
泛型的介绍和使用
1.泛型的概述2.使用泛型的好坏package com.itheima.demo04generic;import java.util.ArrayList;import java.util.Iterator;/* 创建集合对象使用泛型的好处 反射:java中的泛型是一个伪泛型,在.java文件中有,在编译生成的.class文件没有泛型概念的 */public class Demo01Generic { public static void main(Strin原创 2022-03-23 08:44:24 · 140 阅读 · 0 评论 -
引用类型使用(1)
引用数据类型:什么叫基本数据类型:4类8种 byte short int long float double char boolen什么叫引用数据类型:数组,接口,String类,集合,自定义类型(Person,Student)基本数据类型使用的是值int a = 10; double d = 1.1;引用数据类型:引用的都是堆内存中对象的地址值引用数据类型使用的是对象的地址值int[] arr = new int[10];ArrayList<String> list = n原创 2022-03-23 08:43:55 · 217 阅读 · 0 评论