自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手RPC框架实现运程调用 (简易版)BIO

简单的讲发送调用的类的名称+方法到另外一个服务中,拿到类和方法名之后通过反射调用,把数据返回,这就是远程调用。

2022-08-10 17:41:12 169 1

原创 【自动关闭IO流】

自动关闭IO流,这个是java7提供的,但是有一个前提是必须实现Closeable。try段代码执行完毕后,系统会自动调用资源的关闭方法关闭资源。非常适合有些人频繁操作io可能就会忘记关闭io。点进去FileInputStream 或者FileOutputStream 可以看见FileInputStream 继承了InputStream, FileOutputStream 继承了OutputStream,继续点进去看。里面实现了Closeable。而Closeable继承自AutoCloseable,

2022-07-12 11:50:25 925

原创 【线程池、有返回值的线程池、线程池监控】

newFixedThreadPool:固定大小的线程池,每次有任务就创建一个线程,直到线程达到线程池的最大值,后面的任务会放到一个队列里,等待线程空闲的时候执行代码结果可以很清楚看见只有3个线程在运行,这就是线程池的好处,循环利用已有的线程。newSingleThreadExecutor:java线程池中单一的线程池。表示是一个线程池,可以添加多个子线程,但是只有一个线程能运行,当前线程执行完了后下一个添加进来的线程才能运行。单一的线程池,该线程池中每时每刻只有一个线程能运行。添加进入的线程必须等

2022-06-28 17:38:13 449

原创 【线程学习笔记】

什么是线程?线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。在多核CPU中,利用多线程可以实现真正意义上的并行执行在一个应用进程中,会存在多个同时执行的任务,如果其中一个任务被阻塞,将会引起不依赖该任务的任务也被阻塞。通过对不同任务创建不同的线程去处理,可以提升程序处理的实时性。首先先看线程的创建方式,大家一定背的可熟儿了(继承thread,实现runnable,实现callable,线程池),建议还是手打一遍。1.Thread创建执行结果为2.Runna

2022-06-20 10:52:53 99

原创 【总结list set 和map】

说到集合,就list接口,set接口和map接口想了解他们几个,必不可少的得先了解他们的数据结构。数据机构我们先介绍几个数据结构:数组,链表,树1.数组Char[] sz = new Char[]{'S','H','U','Z','U'};Char[] sz1 = new Char[5];cs1[0] = 'S';....由图可见,这就是数组结构,看着图我们不难总结出几个特点:1.内存地址连续2.可以通过下标访问的方式访问成员,所以查询效率高3.增删操作会给系统带来性能消耗[保证

2022-05-19 18:57:21 498 3

原创 前端ui框架layUI

layUIlayui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。https://www.layui.com/doc/将layUI全部路径导入项目(注意项目文件路径)模块化方式使用哪个模块功能就加载哪个模块<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name="viewpo

2021-03-11 09:08:00 991

原创 jquery属性操作,dom节点操作

jquery属性操作在js中对于属性的操作会直接使用属性名进行赋值与获取,但是jquery对齐进行了封装,提供了对不同属性操作的方法属性操作函数说明html ( )设置或获取innerHTML属性的值text ( )设置或获取innerText属性的值val ( )设置或获取value属性的值attr ( )设置或获取某属性的值removeAttr ( )删除某属性prop ( )跟attr()作用一样,但是主要针对可简写的属性remo

2021-02-10 11:06:40 222

原创 js实例,jquery

正则表达式符号描述/…/代表一个模式的开始和结束^匹配字符串的开始$匹配字符串的结束\s任何空白字符\S任何非空白字符\d匹配一个数字字符,等价于**[0-9]**\D除了数字之外的任何字符,等价于**[^0-9]**\w匹配一个数字、下划线或字母字符,等价于**[A-Za-z0-9_]**\W任何非单字字符,等价于**[^a-zA-z0-9_]**.除了换行符之外的任意字符符号描述{n

2021-02-02 09:51:30 127

原创 函数、事件、js对象

函数常用系统函数parseInt (“字符串”)将字符串转换为整型数字如: parseInt (“86”)将字符串“86”转换为整型值86parseFloat(“字符串”)将字符串转换为浮点型数字如: parseFloat(“34.45”)将字符串“34.45”转换为浮点值34.45isNaN()用于检查其参数是否是非数字 var str ="asdas"; //str=parseInt(str);//将字符串转换为整数类型 注意会将小数部分丢弃

2021-01-11 15:33:04 108

原创 js基本语法,dom对象,bom对象

javaScript基本语法书写位置1.以脚本块的形式书写在页面中2.以脚本文件的形式书写在脚本文件中,在页面进行引入变量用于声明后使用变量名进行指定数据的保存js是一种弱类型的语言,在进行数据声明时无需指定数据类型,在运行期间会自动根据保存的数据进行类型转换所以 js中声明变量语法统一为 var 变量名=值;数据类型js中提供5中数据类型进行全数据的类型声明Number类型分为整型和实型例如: 15 2.9 4E5String类型例如 “abc”

2021-01-07 08:58:37 94

原创 浮动,层叠、定位、H5新标签

浮动float:浮动方向1、任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。2、假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行3、浮动元素会脱离文档流,会压住下一个块元素,但不会压住其内容。1.浮动原理:浮动在当前行,脱离原来文本,进入到新的一层(浮动层),然后在设定的方向(左右)移动,直到遇到父级盒子的边缘,或者其他浮动块的边缘停止2.浮动换行:当一行没有足够空间存放所有浮动块时,多出来的盒子会挤到下一行,然后按照设定的方向继续移动,直到遇到父级盒子的

2021-01-05 09:04:40 190

原创 css层叠样式表、盒子模型

CSS一、CSS是Cascading Style Sheet的简称,称为“层叠样式表”或者“级联样式表”,是一组格式设置规则,用于控制网页内容的外观,可将页面内容与表现形式分离。二、1985年5月12日,W3C组织推出了CSS2,使得这项技术在世界范围内得到广泛的应用。三、CSS3提供了非常多新途径去改善你的设计工作,且做了不少重要的变化。优点1、样式复用,有效的避免代码臃肿2、方便网站的后期维护3、对页面进行精准控制,实现精美、复杂的页面基本语法修改的样式:值;根据书写位置分为外部样

2021-01-04 10:02:50 159

原创 html基础,常用标签

HtmlHTML:Hyper Text Markup Language 超 文本标记语言用于书写在页面上可以直接被浏览器解析执行的语言(标签)通过固定的标签进行相应功能的实现使用根标签进行文件的书写之后再根标签中书写相应的二级或多级标签实现相应页面的书写html标签html标签是文档的根标签head标签页面的头部分可以包含页面的标题、文件MIME类型、样式表、脚本等title标签设置文档的标题body标签html文档的主体部分,放置需要呈现给用户的内容meta标签主要功能:为页

2020-12-23 19:09:48 214

原创 Dao设计模式,Mvc设计模式

Dao设计模式DAO (Data Access Object) 数据访问对象是第一个面向对象的接口,在基于orm对象关系映射的基础上,对数据库的使用进行进一步的封装。将数据库查询的业务逻辑进行封装,使在进行数据库业务使用时,直接使用相应的对象进行方法的执行,而不不在需要考虑sql语句编写(因为已经预先进行了相应功能的书写)Dao设计模式不涉及功能的新增只不过是将已有代码进行规范的整理与书写通常使用三个不同的包进行文件的划分pojo/javabean:存放保存数据的实体类dao:用于存放所有表操作

2020-12-18 09:05:28 333

原创 jdbc预编译对象,事务,数据库连接池

jdbc预编译对象原始的jdbc使用声明对象进行sql的执行,对于执行的sql参数使用字符串拼接的形式进行添加 Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/teacher", "root", "root"); Statement statement = con.createStatement(); // 当使用

2020-12-13 19:52:21 174

原创 索引和jdbc

数据库优化在进行程序编写以及程序运行时,往往需要进行大量的数据库操作,但是,随着数据量的增大,数据字段的增多,在进行sql查询时往往可能消耗大量的时间,并且获取数据后还需要将数据发送给用户,这样就造成了程序响应时间过长,为了提高客户体验,数据库优化就必须进行(提高效率)数据库优化提高效率大致分为三类:1、硬件优化提高数据库软件服务器硬件性能2、软件优化通过配置conf下my.ini进行属性的配置进行优化3、sql语句优化(1)尽量少进行计算Mysql的作用是用来存取数据的,不是做计算的,做

2020-12-10 17:18:46 449

原创 函数、多表查询

子查询当多个表中数据存在关联,且需要先由另一个表数据查询后使用进行当前表数据的查询由多条sql语句组成用于返回指定数据子查询中的sql语句一般返回一列数据并且有时可能返回唯一数据函数聚合函数聚合函数:对一组值进行计算,并返回计算后的值 ,具有统计数据的作用,将多行数据进行聚合操作返回一个指定值注意:在使用聚合函数时一般不会再对其他数据进行单独查询,因为聚合函数执行后仅返回一条数据,所以在进行查询时,如果其他数据存在多条也只返回第一条语句sum()求和,将指定列中所有数据求和后返回a

2020-12-09 19:41:41 219

原创 dml、条件查询、模糊查询

dml数据管理语言,用于管理操作数据库中存储的数据插入数据关键字 insert语法:INSERT [INTO] 表名 [(列名)] VALUES (值列表)1、基本写法(为全属性进行书写赋值)insert into 表名 (列1,列2)values (值1,值2)如果在进行输入插入时只想为某一属性赋值,其他使用默认值赋值可以只书写赋值属性(注意,如果设置了not null且没有设置默认值 那么会报错)2、简略写法(为部分属性书写赋值)insert into 表名(添加数据的列

2020-12-08 19:26:07 308

原创 数据库简介及安装,ddl语句

数据库数据库的作用存储大量数据,方便检索和访问保持数据信息的一致、完整共享和安全通过组合分析,产生新的有用信息数据库的分类按照数据(多个数据是否存在联系)关系进行划分①关系型数据库用于存储存在一定关联的数据库,存储形式类似于表,存储的数据拥有统一的类型与名称②非关系型数据库存储数据以一定形式进行存储,数据与数据之间没有关联关系,类似于mapMongDBRedis数据存储的方式数据库就是“数据”的“仓库”数据库中包含表、关系以及操作对象数据存放在表中所有数据存储在相应的表

2020-12-07 19:11:59 191

原创 XML解析

XML(可扩展标记语言)Extensive Markup Language概述:xml:即可扩展标记语言,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者。xml是当前处理结构化文档信息中相当给力的技术,xml有助于在服务器之间穿梭结构化数据,这使得开发人员更加得心应手的控制数据的存储和传输。xml用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定

2020-12-03 19:08:15 128

原创 反射,接口新特性,Lambda表达式

反射概念JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。在程序执行过程中动态的调用没有书写调用其他类的代码.类加载器将编译好的class二进制字节码文件交由jvm进行执行三种默认类加载器**启动类加载器:**将启动jvm的class文件进行加载执行**扩展加载器:**将java运行基本jar包进行加载执行**系统加载器:**将我们编

2020-12-02 19:27:17 88

原创 网络通信、udp.tcp协议

网络通信计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。网络通信三要素IP地址:InetAddress网络中设备的标识,不易记忆,可用主机名端口号用于标识进程的逻辑地址,不同进程的标识传输协议通讯的规则常见协议:TCP,UDPIP地址要想让网络中的计算机能够互相通信,必须为

2020-11-30 19:25:17 154

原创 线程相关类、线程通信、多线程生命周期、Voliate关键字,设计模式)

Runtime运行时对象,是一个单例类(只有一个对象的类)每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。通过 getRuntime 方法获取当前运行时对象。 // RunTime 应用程序运行时对象 // 单例类 只能通过公开的静态方法进行调用 // 可以将应用程序与运行环境相结合 Runtime runtime = Runtime.getRuntime(); runtime.exec("shutdown -s -t 3");//可以

2020-11-28 16:16:19 107

原创 多线程

多线程线程与进程的概念在程序执行过程中,一个应用程序就是一个进程,在这个进行运行过程中可能根据不同的功能创建多个线程创建线程创建获取线程的方式有四种,但是常用方式两种1)继承Thread类重写run方法2)实现runnable接口实现run方法jdk1.5以后额外新增两种方法3)实现callable接口实现call方法4)线程池创建继承Thread类重写run方法public class MyThread extends Thread { // 创建类继承thread // 类似于

2020-11-25 20:21:53 51

原创 转换流、打印流、字符集、对象序列化、反序列化、properties类的使用

转换流在java IO流中按照类型分为字节流与字符流,但是实际上,字符流就是每操作多个字节的字节流,按照不同编码决定每次操作字节的个数,那么将字符流继续拆分就可以转换为字节流,或者将字节流按照一定的个数进行读取就可以转换为字符流,在IO中进行字节流字符流转换的流就是转换流,但通常情况下,最长使用的是将字节流转换为字符流字符输入流InputStreamReaderpublic InputStreamReader(InputStream in):用默认的编码读取数据字节流转换为字符输入流public

2020-11-24 19:18:47 58

原创 IO流

IO流IO:input、output流:指的是程序中数据的流动方向分类:按流向分:输入流:从文件到控制台(读取文件中的数据至控制台)输出流:从控制台到文件(将控制台中的数据存储至文件)按数据类型分:**字节流:**使用单个字节进行数据传输(传输数据最基本单位为字节)字节输入流 InputStream(抽象类)字节输出流 OutputStream(抽象类)**字符流:**使用单个字符进行数据传输(传输数据最基本单位为字符)字符输入流 Reader(抽象类)字符输出流 Writer

2020-11-23 19:26:12 80

原创 今天整个好玩的,二维码生成

使用java进行二维码的生成与读取使用到了谷歌的zxing.jar第一步 导入,maven依赖或者下载指定jar包 com.google.zxing javase 3.2.1第二步 书写二维码生成器的工具类import java.awt.Color;import java.io.File;import java.util.Hashtable;import com.google.zxing.EncodeHintType;import com.google.zxing

2020-11-20 12:10:04 106

原创 File类、递归

File类文件是相关记录或存放于相同位置的数据的集合Java中提供java.io.File类操作文件及目录在java中使用File类对象来表示计算机中所有的文件夹以及文件以路径作为作为找到指定文件的抽象标识构造方法File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。File(File parent, String child)根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。File(Strin

2020-11-18 20:31:21 64

原创 Map集合、比较器、泛型、colletions、arrays工具类

Map集合接口以key-value形式进行数据的存储的集合,底层使用的数组+链表的形式进行数据存储返回类型方法描述Objectget(Object key)根据key取得valueObjectput(Obejct k,Object v)向集合中加入元素voidclear()清除Map集合booleanisEmpty()判断集合是否为空booleancontainsKey(Object object)判断指定的key是否存在bool

2020-11-17 19:59:08 120

原创 集合框架、Liset接口、set接口

集合Java中的集合框架是指一系列存储数据的接口和类,这些类和接口都位于java.util包中使用集合框架可以解决复杂的数据存储问题,Java中内置了丰富的集合框架,并提供了大量进行处理的方法,用于解决数组中存储数据有限的问题。只能存储引用数据类型数据集合框架Collection接口:集合框架总接口,其中包含了集合中所有使用的方法List接口:有序集合接口 存储有序集合所有方法set接口:无序集合接口 存储无序集合所有方法map接口与Collection接口没有关联,因为其特殊的数据存储

2020-11-16 19:36:22 327

原创 异常、log4j的使用

异常java中代码运行时出现的问题大致分为两类:错误:error语法逻辑导致的程序运行问题异常:exception基于java健壮性有代码书写、运行时进行提升的异常Java异常是一个描述在代码段中发生的异常(也就是运行时出错)情况的对象。当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被引发(throw,或称为抛出)。该方法可以选择自己处理异常或传递该异常。如果进行了异常的处理那么,在出现异常时不会终止程序的运行异常体系结构java把各种不同类型的异常情况进行分类,用Ja

2020-11-14 17:04:20 81

原创 常用工具类

常用工具类StringBuffer、StringBuilder带有缓冲区的字符串对象,可以理解为这个对象拥有自己的存储数据的空间,在进行赋值时是将数据复制到自己的空间中进行操作,所以在方法执行后会修改自己本身的数据StringBuffer与String的区别效率更快,避免了过多字符串常量垃圾对象的产生前者用于生成字符串,后者用于表示字符串后为常量,前是“可变化的量”构造方法StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。StringBuffer

2020-11-13 19:27:51 120

原创 内部类、匿名内部类、API

内部类概念在一个类中书写另一个类分类同级类(严格意义上来讲只是一种书写形式不是内部类)成员内部类(全局内部类)局部内部类(包含匿名内部类)①同级类在当前类同级下继续书写其他类,书写语法与普通类相同,但修饰符只能使用默认在使用时与普通类一致,只是访问范围只有本包下,将相当于少创建了一个文件//员工类public abstract class Employee { public String name;// 姓名 public int birthdayMonth;// 生日月份 pu

2020-11-12 20:03:02 71

原创 多态、抽象类、接口

多态概念同一类的不同子类形态。可以声明,父类对象变量保存子类对象的形式现实生活中存在很多多态的例子。例如:水在100摄氏度的高温下是气体,在常温下是液体,在0摄氏度以下是固体。这里的多态是指一个对象具有多种形态OOP中的多态与之类似。同一个引用类型,使用不同的实例可以执行不同的操作,即父类引用子类对象——向上转型。java中的多态理解为另一种数据类型转换//宠物类public class Pet { public String name = "无名氏"; // 宠物昵称 publi

2020-11-11 20:10:21 91

原创 面相对象——继承

面相对象——继承概念在java中继承的概念就是,为多个类将共性继续抽取书写父类(进行类的分类),子类继承父类继承父类所有非私有的属性与方法将大量类共性(书写与行为)进行抽取定义的父类,被抽取相同属性与方法的类称之为这个类的子类,这个类则称之为所有被抽取书写与行为的类的父类语法使用extends关键字将子类与父类关联修饰符 class 子类类名 extends 父类类名{方法体}package com.yunhe.day1019;//父类 拥有子类共性(属性、行为)public class

2020-11-10 19:30:10 95

原创 多维数组、封装

多维数组在java中其实没有多维数组的概念,只不过是依据数组的概念以及特点技术上的延伸本质上就是存储数组的数组多维的数组的使用①声明 // ### ①声明 // 1)数据类型 [][] 数组名; // 创建一个存储整数类型数组 的 数组 名为arr1 int[][] arr1; // 2)数据类型 数组名[][] // 创建一个存储整数类型数据的 名为arr2 的数组中存储数组 int arr2[][];②创建 // ### ②创建 // 1)动态创建

2020-11-09 20:28:09 118

原创 数组

数组概念用于存储具有相同数据类型的容器称之为数组,可以使用统一的标识符(变量名进行管理)数据既可以存储基本数据类型也可以存储引用数据类型=》可以存储任意类型的数据数组的使用①声明 //### ①声明 //与变量声明类似,在相应位置声明一个变量用于存储指定数据地址 //声明语法有两种 //1)数组保存数据的数据类型 [] 数组名; //声明一个保存int整数类型的数组名为scores1 int [] scores1; //2)数组保存数据的数据类型 数组名[]; //声明一个保存

2020-11-08 18:27:18 76

原创 static、final关键字、构造方法的定义

static关键字static:静态的1.用于修饰变量语法:public static 变量类型 变量名[=初始值];在修饰变量时只能修饰全局变量(成员变量)=》定义在类体中的变量(属性)被static修饰的变量也称之为类变量(静态变量)可以理解为类(对象)共享的变量被staitc修饰的变量就不是某个对象自己使用的了,而是当前类下所有对象共用的被static修饰的变量可以以直接通过类名.变量名进行使用2.用于修饰方法在返回值类型前使用static修饰 ,被static修饰的方法称之为

2020-11-07 21:20:04 117

原创 流程控制语句嵌套,方法的使用

流程控制语句的嵌套单个流程控制语句不能满足需求时,使用嵌套的形式完成流程更复杂形式的实现public class LoopTest { public static void main(String[] args) { //使用*打印一个长方形// System.out.println("***************");// System.out.println("***************");// System.out.println("***************");

2020-11-06 17:31:07 174

原创 分支流程控制语句、循环流程控制语句

选择流程控制语句也叫分支流程控制语句,用于在程序运行时进行流程控制通过条件判断语句进行指定代码块的执行按照语法分为:if。。else语句switch。。case语句语法switch(变量){​ case 值:​ 语句体;​ break;​ default:​ 语句体;}public static void main(String [] args){ //创建扫描器对象 Scanner sc=new Scanner(System.in); //获取控制台输入 S

2020-11-05 17:03:57 180

空空如也

空空如也

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

TA关注的人

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