自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 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 811

原创 网络编程入门(笔记)

网络编程三要素:协议,IP地址,端口号一.软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。二.网络通信协议协议就是规则:就是计算机通信需要遵守的udp:面向无连接的协议,通信的双方不用建立连接,可以直接发送数据

2022-03-31 13:52:38 669

原创 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 518

原创 序列化流(集合)

一.序列化流和反序列流的概述二.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 294

原创 转换流(笔记)

一.编码表**就是生活中的文字和计算机中文字的对应关系表**a-->97-->01100001==>存储到计算机中中-->20013-->‭0010000000001011‬==>存储到计算机中**编码:把能看懂的文字,转换为看不懂的文字(字符==>字节)****解码:把看不懂的文字,转换为能看懂的文字(字节==>字符)**常用的编码表:**ASCII字符集** (美国信息交换标准代码):英文,数字,标点符号和计算机中文字的对应关系

2022-03-30 20:14:47 382

原创 缓冲流(笔记)

一.概述缓冲流:提高读写数据的效率二.BufferedInputStream:字节缓冲输入流(重点)/*java.util.BufferedInputStream:字节缓冲输入流 extends InputStream:字节输入流BufferedInputStream可以使用继承自InputStream的共性方法int read() 一次读取一个字节int read(byte[] b) 一次读取多个字节void close() 关闭此输入流并释放与该流关联的所有系统资源。Buffer

2022-03-30 20:02:57 235

原创 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 541

原创 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 260

原创 字符流(笔记)

一.使用字节输入流读取含有中文的文件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 161

原创 字节流(笔记)

一.字节输出流的介绍(了解)java.io.OutputStream类:字节输出流 此抽象类是表示输出字节流的所有类的超类。 OutputStream类是所有字节输出流的父类,里边定义了所有字节输出流共性成员方法,任意的子类都可以使用OutputStream类中定义的共性成员方法: public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 public void

2022-03-29 21:31:43 841

原创 递归(笔记)

一.递归的概述递归:方法自己调用自己分类:1.直接递归public void a(){a();}2.间接递归public void a(){b();}public void b(){a();}注意事项:1.递归必须有结束的条件,保证方法自己调用自己能停止下来,否则会抛出栈内存溢出的错误2.递归有结束的条件,但是递归的次数也不能太多了,否则会抛出栈内存溢出的错误3.构造方法禁止递归什么时候使用递归:当我们频繁的调用一个方法,方法的主体不变,方法的参数每次发生变化,就可以

2022-03-29 20:58:40 173

原创 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 223

原创 Stream流(笔记)

一.Sream流概述我们可以把集合|数组,转换为Stream流,使用Stream流中的方法,对集合|数组进行操作作用:简化代码,使我们的代码更加优雅2.Stream流的基本体验需求:List list= new ArrayList<>();Collections.addAll(list,“张无忌”,“周芷若”,“赵敏”,“张三丰”,“张翠山”,“灭绝师太”,“张三”);1.首先晒选出所有姓张的人,把姓张的人存储到一个新的集合中2.筛选名字中是3个字的人,把名字是3个字的人存储到一

2022-03-27 18:29:56 1319

原创 Lambda表达式(重点)(笔记)

一.函数式编程思想概述面向对象思想:​ 做一件事情,找一个能够解决这个事情的对象**,调用对象的方法来完成这件事情函数式编程思想:​ 重视的是结果**,怎么做事情,不重视完成的过程,找谁来做**二.使用Lambda表达式简化匿名内部类(重点)package com.itheima.demo04lambda;/* 使用Lambda表达式简化多线程匿名内部类 */public class Demo01Lambda { public static void main(Stri

2022-03-27 18:15:51 872 2

原创 定时器(笔记)

一.定时器的概述定时器,可以设置线程在某个时间执行某件事情,或者某个时间开始,每间隔指定的时间反复的做某件事情java.util.Timer类:是一个描述定时器的类一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。构造方法:Timer() 创建一个新计时器。成员方法:1.void cancel() 终止此计时器,丢弃所有当前已安排的任务。注意,在此计时器调用的计时器任务的 run 方法内调用此方法,就可以绝对确保正在执行的任务是此计时器所执行的最后一个

2022-03-27 12:03:31 853

原创 线程状态(笔记)

一.线程状态概述重点:必须记住6种线程状态的名称新建(NEW):刚刚创建出来但是没有运行的线程处于此状态。运行(RUNNABLE):调用start方法启动后的线程处于运行状态。受阻塞(BLOCKED):等待获取锁的线程处于此状态。无限等待(WAITING):当线程调用wait()方法时,线程会处于无限等待状态【没有时间的等待】计时等待(睡眠)(TIMED_WAITING):当线程调用wait(毫秒值)方法或sleep(毫秒值)时,线程会处于计时等待状态【有时间的等待】退出(死亡)(TERMI

2022-03-27 12:01:29 134

原创 线程池(笔记)

一.线程池思想二.线程池相关类和接口概述工厂类 工具类 全是静态方法java.util.concurrent.Executors:是一个生产线程池的工厂类工厂类中的方法都是静态的,通过类名可以直接使用static ExecutorService newFixedThreadPool(int nThreads) 创建一个可重用固定线程数的线程池参数:int nThreads:传递创建线程池包含的线程数量 传递100,线程池中包含100个线程,传递10000,线程池中包含10000个线

2022-03-27 11:02:59 375

原创 并发包(笔记)

在JDK的并发包java.util.concurrent里提供了几个非常有用的并发容器和并发工具类。供我们在多线程开发中进行使用。这些集合和工具类都可以保证高并发的线程安全问题.1.并发List集合_CopyOnWriteArrayList(重点)List集合的特点:​ 1.是一个有序的集合​ 2.允许存储重复的元素​ 3.包含一些带索引的方法1).java.util.concurrent.CopyOnWriteArrayList(类):它是一个“线程安全”的ArrayList,我们之前学习的j

2022-03-26 22:06:47 289

原创 synchronized关键字(笔记)

之前我们讲过的AtomicInteger可以对“int类型的变量”做原子操作。但如果需要将“很多行代码”一起作为“原子性”执行——一个线程进入后,必须将所有代码行执行完毕,其它线程才能进入,可以使用synchronized关键字——重量级的同步关键字。AtomicInteger:只能解决一个变量的原子性synchronized:可以解决一段代码的原子性1.售票案例引发的安全性问题(了解)2.售票案例的代码实现(重点)package com.itheima.demo07payTicket;

2022-03-26 21:53:08 697

原创 原子类(笔记)

概述:所谓的原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行,多个操作是一个不可以分割的整体(原子)。比如:从张三的账户给李四的账户转1000元,这个动作将包含两个基本的操作:从张三的账户扣除1000元,给李四的账户增加1000元。这两个操作必须符合原子性的要求,要么都成功要么都失败。1.原子类概述概述:java从JDK1.5开始提供了java.util.concurrent.atomic包(简称Atomic包),这个包.

2022-03-26 21:25:41 388

原创 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 189

原创 高并发及线程安全

1.高并发及线程安全的概念1.高并发:在某个时间点上,有多个线程同时访问某一个资源。例如:双十一,12306 , 秒杀2.线程安全性问题:当多个线程无序的访问同一个资源(例如:同一个变量、同一数据库、同一个文件……),而且访问同一资源的代码不具有“原子性”,这时对这一资源的方法就会产生安全性问题——导致此资源最终的结果是错误。3.高并发所产生的安全性问题主要表现:1).可见性:指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。2).有序性:即程序执行的顺序

2022-03-26 21:04:42 1501

原创 多线程(笔记)

1.并发与并行2.进程的概念进入到内存中的执行的程序叫进程3.线程的概念线程:是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程(单线程程序)。一个 进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。4.线程的调度分时调度所有的线程轮流使用cpu的使用权,平均分配每个线程占用cpu的时间抢占式调度优先让优先级高的线程使用cpu,如果线程的优先级相同的,那么会随机选择一个线程执行(线程的随机性),java使用的就是抢占式调度

2022-03-24 21:15:42 720

原创 异常介绍(笔记)

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 739

原创 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 503

原创 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 1239

原创 内部类(笔记)

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 65

原创 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 1739

原创 泛型的介绍和使用

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 131

原创 引用类型使用(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 201

原创 引用类型的使用(2)

4.类名作为成员变量我们每个人(Person)都有一个身份证(IDCard) , 为了表示这种关系 , 就需要在Person中定义一个IDCard的成员变量。定义Person类时,代码如下:class Person { String name;//姓名 int age;//年龄 IDCard idCard;//身份证信息}​ 使用String 类型表示姓名 , int 类型表示年龄。其实,String本身就是引用类型,我们往往忽略了它是引用类型。如果我们继续丰富这个类的定义

2022-03-22 11:10:53 268

原创 Collection集合

1.集合和数组的区别数组:1.是引用数据类型的一种2.可以存储多个元素3.数组的长度是固定的 int[] arr1 = new int[10]; int[] arr2 = {1,2,3};4.数组即可以存储基本数据类型的数据,又可以存储引用数据类型的数据 int[] double[] String[] Student[]集合:1.是引用数据类型的一种2.可以存储多个元素3.集合的长度是可以变化的(添加元素,删除集合中的元素)4.集合只能存储引用数据类型的数据ArrayList&lt

2022-03-22 11:10:32 53

原创 Iterator迭代器

1.迭代器的概述迭代器:是一种通用的遍历集合,取出集合中元素的方式迭代器由来:集合有很多种,每种集合的数据结构是不同的(数组,链表,哈希表…),集合取出元素的方式也不同我们不可能为每种集合都定义一种取出元素的方式,浪费所以我们就可以使用迭代器,是集合通用的取出元素的方式迭代器取出元素的原理:判断集合中还有没有元素,有就取出来再判断集合中还有没有元素,有再取出来一直判断到集合中没有元素为止,这种取出元素的方式叫迭代java.util.Iterator接口:对 collection 进

2022-03-22 11:10:11 2468

原创 增强for循环

注意:​ 增强for循环底层是一个迭代器,所以在使用增强for循环遍历的时候,不能对集合的长度进行修改,否则会抛出并发修改异常package com.itheima.demo03forEach;import java.util.ArrayList;/* 增强for循环:使用for循环的格式封装了迭代器,简化迭代器遍历的代码 格式: for(元素的数据类型 变量名 : 集合名|数组名){ sout(变量名); } */p

2022-03-22 11:09:36 575

原创 String类中常用的成员方法

1.方法介绍1.String concat(String str) 将指定字符串连接到此字符串的结尾。 把两个字符串连接到一起“aa”.concat(“bb”)>“aabb” “aa”+“bb”>“aabb”2.boolean contains(String s) 判断字符串中是否包含指定的字符串;包含返回true,不包含返回false“abcabc”>“abc” true “abcabc”>“aaa” false3.boolean endsWith(Strin

2022-03-22 11:07:52 617

原创 包装类的介绍和使用

1.包装类概念2.包装类中装箱和拆箱装箱:拆箱:包装类:使用一个类把基本数据类型的数装起来,这个类叫包装类基本数据类型:byte short int long float double char boolen对应的包装类:java.langByte Short Integer Long Float Double Character Boolen包装类中装箱和拆箱(重点)1.装箱:把基本数据类型的数据转换为包装类int==>Integera.可以使用Integer类的构

2022-03-22 11:07:25 409

原创 Arrays类

package com.itheima.demo12Arrays;import java.util.Arrays;/* java.util.Arrays:操作数组的工具类 Array:数组 此类包含用来操作数组(比如排序和搜索)的各种方法。 静态成员方法:通过类名.方法名可以直接使用 static String toString(Object[] a)返回指定数组内容的字符串表示形式。 static void sort(Obj.

2022-03-22 00:02:16 36

原创 System类

package com.itheima.demo11System;import java.util.Date;/* java.lang.System类 System:系统 类中提供的大量的静态方法,可以获取与系统相关的信息 System类不能被实例化,不能创建对象(私有的空参数构造方法) */public class Demo01System { public static void main(String[] args) { .

2022-03-22 00:01:58 43

原创 Calendar类中的常用成员方法

Calendar类中的常用成员方法 int get(int field) 返回给定日历字段的值。 void set(int field, int value) 将给定的日历字段设置为给定值。 void add(int field, int amount) 把日历字段增加|减少指定的值 Date getTime() 把日历对象转换为日期Date对象注意: 以上方法的参数(int field),让我们传递指定的日历字段,这些日历字段在Calendar类中被定义为了常量 年:public fin

2022-03-22 00:01:40 600

原创 BigDecimal类

/*java.math.BigDecimal类BigDecimal类用于小数(浮点数)的精确计算以后想进行小数的精确计算,不要使用float和double类型,使用BigDecimal类型构造方法:BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal。参数:String val:传递一个字符串的小数 “1.1111”成员方法:加法:BigDecimal add(BigDecimal augend) 返回一个 BigDecim.

2022-03-22 00:01:24 175

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除