自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式 (代理模式初探)

一.代理:1.首先明白一下什么是代理?给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用。即:二.代理模式:1.代理模式的三个要素:接口:约定了该服务提供的能力或者功能,比如生产厂商,规定该厂商应该生产哪些产品。真实对象:实现了改接口,具有改接口的真实的方法。代理对象:帮忙代购的代理人。2.代理模式类图:张三通过代理人间接买到了想要买到的海外商品。并且代理人可以额外追加商品包装和售后服务的功能3.代码举例:1.首先定义一个接口:我们这里定义一个电脑厂家接口:2.

2020-12-08 23:03:35 345

原创 数据库 MySQL(多表查询)

一:多表查询:1.内连接查询查询的是两张表的公共部分。1.1:隐式内连接:语法:a b 皆为表select ... from a,b where a.id = b.id;1.2:显式内连接:select ... from a inner join b on 条件2.外连接查询:2.1:左外连接:2.2:右外连接:...

2020-08-29 16:56:19 534

原创 数据库 MySQL(约束)

一.约束:为了确保数据的完整性(准确性、正确性),为了表添加一些约束,表中添加的数据必须是符合约束,降低数据冗余。主键约束唯一约束默认约束非空约束外键约束1.主键约束:primary key 约束:用于标识数据中的数据是唯一不重复。一张表中只能有一个主键主键字段的特点:唯一并且不能为null1.1:添加主键约束:方式一:建表时添加主键约束:create table p2( id int primary key, name varchar(20));违反主键约束时,错误

2020-08-26 23:29:19 715

原创 数据库 MySQL(SQL语句)

一.SQL语句的分类:1.DDL(数据定义语句)2.DML(数据操作语句)3.DCL(数据控制语言)4.DQL(数据查询语言)

2020-08-25 23:36:57 383

原创 数据库 MySQL(MySQL的安装与卸载)

一.数据库概述:1.数据库系统:DBS:(DataBase System)通常包括:数据库、数据库管理系统、数据库管理系统、数据库管理员2.数据库管理系统:DBMS:(DataBase Management System)用于管理和操作数据库的大型软件。3.数据库管理员:DBA:(Database Administrator)用于管理和操作数据库的相关工作。二.安装MySQL数据库:三.检查是否安装成功:用户在dos窗口中输入mysql [-h 连接的主机的i

2020-08-24 20:44:05 154

原创 JVM Java虚拟机栈(栈帧:方法返回地址)

目录一:方法重写的本质:一:方法重写的本质:找到操作数栈顶的第一个元素所执行的对象的实际类型,记作C。如果在类型C中找到与常量池中的描述符合简单名称都相符的方法,则进行访问权限校验,如果通过则返回这个方法的直接引用,查找过程结束:如果不通过,则返回IllegalAccessError异常。否则按照继承关系从下往上一次对C的各个父类进行第2步的搜索和验证过程。如果始终没有找到合适的方法,则抛出AbstratcMethodError异常。...

2020-08-05 23:26:33 1216

原创 JVM Java虚拟机栈(栈帧:动态链接)

目录

2020-08-05 20:46:49 3407

原创 JVM Java虚拟机栈(栈帧:操作数栈)

目录一:特点:二.执行过程:1.第一步:2.第二步:3.第三步:4.第四步:一:特点:操作数栈,主要用于保存计算过程中的中间结果,同时作为计算过程中变量临时的存储空间。操作数栈就是JVM执行引擎的一个工作区,当一个方法刚开始执行的时候,一个新的栈帧也会随之被创建,这个方法的操作数栈是空的。每一个操作数栈都会拥有一个明确的栈深度用于存储数值。如果被调用的方法带有返回值的话,其返回值将会被压入当前栈帧的操作数栈中。我们说是java虚拟机的解释引擎是基于栈的执行引擎,其中的栈指的就是操作数栈。如果

2020-08-03 23:20:09 1920

原创 JVM Java虚拟机栈(栈帧:局部变量表)

目录局部变量表(local variables)一.作用:二. Slot(变量槽):1.概述:2.Slot重复利用:三.两个补充说明:局部变量表(local variables)一.作用:局部变量表也称为局部变量数组或本地变量表定义为一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量,这些数据包括各类基本数据类型、对象引用,以及返回值类型。由于局部变量表是建立在线程的栈上,是线程的私有数据,因此不存在数据安全问题局部变量表所需的容量大小是在编译期确定下来的,并保存在方法的Code属性

2020-08-01 17:08:05 1177

原创 JVM Java虚拟机栈(概述)

目录一.虚拟机栈的特点:二.虚拟机栈可能出现的异常:1.手动设置栈的空间大小:一.虚拟机栈的特点:栈是一种快速有效的分配存储方式,访问速度仅次于程序计数器。JVM直接对Java栈的操作有两个,一个是每个方法的执行都伴随入栈,另一个是结束后出栈。对于栈来说不存在垃圾回收问题二.虚拟机栈可能出现的异常:java 虚拟机规范允许Java栈的大小是动态的或者是固定不变的如果采用固定大小的Java虚拟机栈,那每一个线程的Java虚拟机栈的容量可以在线程创建的时候独立选定。如果线程请求分配的栈容量超

2020-08-01 15:20:16 442

原创 JVM PC寄存器/程序计数器

目录JVM运行时区域内部结构:一.PC寄存器的特点:二.PC寄存器的作用:三.面试中的两个常见的问题:1.使用PC寄存器的存储字节码指令地址有什么作用?2.为什么使用PC寄存器记录当前线程的执行地址?JVM运行时区域内部结构:一.PC寄存器的特点:它是一块很小的的内存空间,几乎可以忽略不记。也是运行速度最快的区域在jvm规范中,每个线程都有它自己的程序技术器。是线程私有的,声明周期与线程的生命周期保持一致。在任何时间一个线程都要一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在

2020-08-01 14:49:02 527

原创 JVM 类的加载过程

一.加载阶段:通过一个类的全限定名获取定义类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。二.链接阶段:1.验证(Verify):目的在于确保Class文件的字节流中包含信息符合当年虚拟机要求,保证被加载类的正确性,不会危害虚拟机的安全。2.准备(Prepare):为类变量分配内存并且设置该类的默认初始化值,即零值。这里不包含final修饰的stati

2020-07-30 23:06:34 109

原创 JVM 双亲委派机制

目录一.类的加载器:1.引导类加载器(Bootstrap ClassLoader):2.扩展类加载器(Extension ClassLoader):3.系统类加载器(System ClassLoader):4.自定义类加载器:二.双亲委派机制:1.工作原理:2.案例:一.类的加载器:1.引导类加载器(Bootstrap ClassLoader):java的核心类库都是引导类加载器负责加载的。主要是调用底层C/C++的方法。不能被java程序获取到没有父亲加载器安装在JAVA_HOME/jre/l

2020-07-27 23:48:26 609

原创 剑指offer 面试题3数组中重复的数字

目录题目一:找出数组中重复的数字:1.思路:2.代码:题目二:不修改数组找出重复的数字:1.思路:2.代码:题目一:找出数组中重复的数字:在一个长度为n的数组里的所有数字都在0~n-1点范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3}那么对应的输出是重复的数字2或者3。1.思路:数组长度为n,而且数组元素的大小的范围为1~n-1这就意味着我们可以通过交换将每个数组中的数放到

2020-07-25 11:58:28 150

原创 JavaSE 自动类型提升与强制类型转换

目录一.自动类型提升:说明:二.强制类型转换:三.变量运算规则的两种特殊情况:1.编码情况一:2.编码情况二:基本数据类型之间的运算规则:前提:这里讨论只是7种基本数据类型间的运算。不包含boolean类型的。一.自动类型提升:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。byte 、short、char --> int --> long --> float --> double。前三个类型相互做运算(byte、short、

2020-07-20 23:21:51 200

原创 JavaSE Java8新特性(Optional类)

目录一.Optional类:一.Optional类:

2020-07-18 15:59:22 247

原创 JavaSE Java8新特性(Stream的中间操作与终止操作)

目录一.筛选与切片:一.筛选与切片:

2020-07-18 14:59:46 912

原创 CSS基础 盒子模型与案例

目录一.块级标签:二.内联标签:三.盒子模型:1.边框:2.边距:3.margin妙用:4.背景颜色和图片:5.无序列表去掉前标识:6.超链接样式:一.块级标签:如果该标签需要独占一行,则称其为块级标签h1 p ul li ol dl二.内联标签:如果该标签不会独占一行,则称其为内联标签img a span块极标签中可以放入内联标签,反之不成立我们可以通过css样式进行调整,使得内联标签具有块级标签的效果,也可以使得块级标签具有内联标签的效果。 h1{ /

2020-07-16 23:08:05 720

原创 CSS基础 概念 结构与常见样式

目录一.CSS基本概念:1.静态网页:2.动态网页:二.CSS基本结构:三.网页中使用的css的三种方式:1.行内方式:2.内部样式:3.外部样式:四.选择器:1.标签选择器:2.类选择器:3.ID选择器:五.常见的CSS的样式:1.字体样式:2.文本样式3.span4.图片样式:一.CSS基本概念:CSS:cascade style sheet 层叠样式表 我们可以对table使用多个样式(字体颜色 字体大小),那么表格就是这两个样式的综合体。1.静态网页:网页中的内容任何时候任何人看到的

2020-07-16 22:44:05 464

原创 HTML基础 表格与表单

目录一.表格:1.tr、td 标签:2.合并单元格二.表单:1.action提交:2.常用表单元素:1. 文本框:2. 密码框3. 单选按钮4. 复选框5. 下拉列表6. 提交按钮:7. 图片按钮:8. 普通按钮:9.文本域:10.文件域:一.表格:1.tr、td 标签:网页布局只有两种:table div想要在网页中画一个表格,需要用到table<table> <tr> <td></td> </tr></table&g

2020-07-15 23:07:25 483

原创 HTML基础 常用标签

目录一.HTML简介:二.常用标签:1.标题标签:2.段落标签:3.加粗 4.斜体5.换行6.水平线标签< hr />7.图片标签 < img />8. 超链接标签8.1页面间链接8.2锚链接9.特殊字符:10.无序列表:11.有序列表:12.自定义列表:图文混排一.HTML简介:HTML:超文本标记语言 Hyper Text Markup languageHtml不仅仅能表示文字,还可以表示图片 音频 视频 超链接这些东西。HTML1.0-HTML4.0 PC端

2020-07-15 20:38:05 453

原创 JavaSE Java8新特性(StreamAPI的四种创建方式)

目录一.StreamAPI:1.什么是Stream:2.三点注意:3.Stream的操作步骤:二.实例化StreamAPI的四种方式:1.通过集合来进行创建2.通过数组来创建:3.通过Stream的of()来创建:4.创建无限流:一.StreamAPI:1.什么是Stream:用于操作数据源(集合、数组等)所生成的元素序列。集合关注的是数据,针对于内存,Stream关注的是计算,针对CPU。2.三点注意:Stream自己不会存储元素Stream不会改变源对象。相反,他们会返回一个持有结果

2020-07-14 23:16:37 288

原创 JavaSE Java8新特性(方法引用与构造器引用)

目录一.方法引用:1.使用情景:2.本质:3.使用格式:4.要求:二.方法引用使用的三种情况:1.对象 :: 非静态方法2.类 :: 静态方法3.类 :: 非静态方法一.方法引用:1.使用情景:当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用2.本质:方法引用的本质上就是一种Lambda表达式,而Lambda表达式作为函数式接口的实例,所以,方法引用,也是函数式接口的实例3.使用格式:对象 :: 静态方法类 :: 静态方法类 :: 非静态方法4.要求

2020-07-13 23:02:44 256

原创 JavaSE Java8新特性(函数式接口)

目录一.函数式接口:1.什么是函数式接口:2.Java内置四大核心函数式接口:消费型接口Consumer < T > void accept(T t)供给型接口Supplier< T > T get()函数型接口Function< T , R > R apply(T t)断定型接口 Predicate< T > boolean test(T t)一.函数式接口:1.什么是函数式接口:只包含一个抽象方法的接口,称为函数式接口。在java.

2020-07-11 16:02:33 297

原创 JavaSE Java8的新特性(Lambda表达式)

目录Lambda表达式:1.Lambda表达式的语法:2.Lambda表达式的使用:情况一:无参,无返回值情况二:有一个参数,无返回值:情况三:类型推断:情况四:有一个参数,参数的括号可以省略:情况五:多个参数:情况六:Lambda体只有一条执行语句,return和{}可以省略总结:3.Lambda表达式的本质:Lambda表达式:1.Lambda表达式的语法:Lambda操作符 或 箭头操作符左边:Lambda形参列表 (其实就是接口中的抽象方法的形参列表)右边:Lambda体 (其实就是

2020-07-11 14:18:23 303

原创 JavaSE 反射(调用运行时类的指定结构)

目录一.调用运行时类的指定结构:1.操作运行时类指定的属性:2.操作运行时类的方法:3.获取运行时类的指定的构造器:一.调用运行时类的指定结构:Person类:1.操作运行时类指定的属性:2.操作运行时类的方法:3.获取运行时类的指定的构造器:...

2020-07-11 11:35:40 127

原创 JavaSE 反射(获取运行时类的完整结构)

目录一.获取指定结构:1.获取类的属性结构:2.获取类的方法:3.获取类的构造方法:一.获取指定结构:在此之前创建了一个Person类1.获取类的属性结构:2.获取类的方法:3.获取类的构造方法:...

2020-07-11 11:06:31 99

原创 JavaSE 反射(Class类)

目录一.Class类的理解:1.类的加载过程:2.获取Class的实例的方式:方式一:.class方式二:getClass()方式三:forName(String classPath)方式四:使用类的加载器:3.Class类的对象二.类的加载器:一.Class类的理解:1.类的加载过程:程序经过javac.exe命令以后,会生成一个或多个字节码文件(.class结尾),接着我们使用java.exe命令对某个字节码文件进行解释运行。相当于将某个字节码文件加载到内存中。此过程就称为类的加载。加载到内存

2020-07-11 09:49:41 261

原创 JavaSE 网络编程(URL类)

目录一.URL:1.什么是URL:2.URL包含五个部分:3.URL类的相关方法4.URL的相关编程:一.URL:1.什么是URL:Unifrom Resource Locator:统一资源定位符,它表示Internet上某一个资源的地址。2.URL包含五个部分:<传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表http://localhost:8080/example/index.jsp#a?username=tom&

2020-07-08 18:33:27 247

原创 JavaSE 网络编程(socket网络编程举例)

一.基于TCP的网络编程:1.例题一:客户端发送信息给服务器,服务器端将数据显示在控制台上:先开服务端:服务端正在等待客户端连接再开客户端:客户端连接成功服务端显示:2.例题二:...

2020-07-08 17:44:42 197

原创 JavaSE 网络编程(TCP与UDP)

目录一.TCP协议:1.TCP三次握手2.握手为什么是3次?3.TCP四次挥手:二.UDP协议:一.TCP协议:可靠传输协议,在使用TCP之前必须进行TCP连接,形成传输数据的通道传输前,采用“三次握手”方式,点对点通讯,是可靠的TCP协议进行通讯的两个应用进程:客户端,服务端在传出中精心大量数据的传输传输完毕,需要释放已建立的连接,效率低1.TCP三次握手在传输前要要进行三次握手:左边是客户端,右边是服务端;比如左边看成张三,右边看成李四;小明给李四发信息,你好,我是张三;

2020-07-07 19:06:31 684

原创 JavaSE 网络编程(IP和端口号)

目录一.网络编程的两个问题:二.网络编程中的两个要素:三.网络通讯要素一:IP和端口号1.IP地址:1.1.域名:1.2.实例化InetAddress的两个方法:方法一:getByName(String host)方法二: getLocalHost(String host)1.3.两个常用方法(1)getHostName():(2)getHostAddress():2.端口号:一.网络编程的两个问题:如何准确的定位网络上一台或多台主机;定位主机上的特定应用找到主机后如何可靠有效的进行数据传输二.

2020-07-07 12:32:38 513

原创 JavaSE IO流(随机存取文件流)

目录一.RandomAccessFile的使用:二.构造器:1.public RandomAccessFile(File file,String mode)三.代码的举例:四.seek(long pos)方法:一.RandomAccessFile的使用:RandomAccessFile直接继承于java.lang.Object类,实现了DataInput和DateOutput接口RandomAccessFile既可以作为一个输入流,又可以作为一个输出流如果RandomAccessFile作为输出流

2020-07-07 11:35:37 174

原创 JavaSE IO流(其它处理流的使用)

目录一.标准输入、输出流1.System.in:标准输入流2.System.out:标准输出流3.练习:二.打印流:1.PrintStream:2.PrintWriter:三.数据流:1.DataOutputStream:2.DataInputStream:3.作用:一.标准输入、输出流1.System.in:标准输入流默认从键盘输入2.System.out:标准输出流默认从控制台输出3.练习:从键盘输入一个字符串,要求将读取的字符串转成大写输出,然后继续进行输入操作。直到当输入"e"或者”e

2020-07-06 20:29:28 246

原创 JavaSE IO流(处理流之三:对象流)

目录一.对象的序列化机制:二.序列化:ObjectOutputStream:1.序列化过程:2.代码:三.反序列化:ObjectInputStream:一.对象的序列化机制:语序把内存中的java对象转换成平台无关的二进制流,从而把这种二进制流永久的保存在磁盘上,或通过网络将这种二进制流传输到另一个网络结点。当程序获取了这种二进制流,就可以恢复成原来的Java对象。二.序列化:ObjectOutputStream:1.序列化过程:将内存中的对象保存到磁盘中或通过网络传输出来使用ObjectOu

2020-07-06 19:07:18 256

原创 JavaSE IO流(处理流之二:转换流)

一.转换流的使用:InputStreamReader:将一个字节的输入流转换为字符的输入流。OutputStreamWriter:将一个字符的输出流转换为字节的输出流1.作用:提供字节流与字符流之间的转换。案例一:我们先看一个案例:字符转字节:案例二:综合使用InputStreamReader和OutputStreamWriter:按照上图将utf-8编码集转换成gbk编码集存储。...

2020-07-05 19:21:29 169 1

原创 JavaSE IO流(处理流之一:缓冲流)

目录字节型:一.BufferedInputStream、BufferedOutputStream:1.使用:2.作用:3.处理流:字符型:一.BufferedReader、BufferedWriter1.使用:2.总结:字节型:一.BufferedInputStream、BufferedOutputStream:1.使用:实现非文本文件的复制先写出大致的四步骤,再用try-catch-finally的方式将代码包住。加上try-catch-finally进行配置后得到的代码:2.作用:

2020-07-04 18:38:57 269

原创 JavaSE IO流(节点流)

目录字符:一.读:FileReader1.说明点:2.使用read()的重载方法2.1第三步中for循环的两种错误写法:二.写:FileWriter:1.说明:三.读写操作总结:字节:一.读:FileInputStream二.写:FileOutputStream三.结论:字符:一.读:FileReader读取当前module下的hello.txt文件。将字符一个一个的读取,然后再输出。即:一次循环读取一个字符。1.说明点:read()的理解:返回读入一个字符。如果达到文件末尾,返回-1异

2020-07-04 17:26:35 442

原创 JavaSE IO流(流的分类)

这里写目录标题一.流的分类:1.抽象基类:2.流的体系:一.流的分类:按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)按数据流向不同分为:输入流,输出流按流的角色的不同分为:节点流,处理流1.抽象基类:字节流:InputStream、OutputStream字符流:Reader、Writer2.流的体系:本次重点学习这几个:节点流(或 文件流):FileInputStreamFileOutputStreamFileReaderFileWriter

2020-07-04 11:40:50 181

原创 JavaSE IO流(File类)

这里写目录标题一.File类的使用:二.File类的创建:构造器一:File(String filePath)构造器二:File(String parentPath,String childPath)构造器三:File(File parentFile,String childPath)三.File类的常用方法一:1.public String getaAbsolutePath():2.public String getPath():3.public String getParent():4.public l

2020-07-03 12:54:53 460

空空如也

空空如也

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

TA关注的人

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