自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dubbo+zookeeper快速入门实例

Dubbox简介Dubbox 是一个分布式rpc框架,是阿里巴巴的开源产品,后阿里便不再维护,由当当网进行维护,并改名为Dubbo。Dubbo 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。节点角色说明:Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。Monitor: 统计服务的调用次调和调用时间的监控中心。Container: 服务运行容器。调用关系说明:1、服务容器负责启

2021-10-26 16:14:17 338

原创 一遍看懂mysql索引

Mysql索引1、什么是索引官方定义:一种帮助mysql提高查询效率的数据结构索引的优点:1、大大加快数据查询速度索引的缺点:1、维护索引需要耗费数据库资源2、索引需要占用磁盘空间3、当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响2、索引的分类a)主键索引设定为主键后数据库会自动建立索引,innodb为聚簇索引b)单值索引即一个索引只包含单个列,一个表可以有多个单列索引c)唯一索引索引列的值必须唯一,但允许有空值d)复合索引即一个索引包含多个列e)Ful

2021-09-12 22:24:36 192 1

原创 AJAX技术使用及其原理

Ajax技术使用与原理文章目录Ajax技术使用与原理1、简介2、 所包含的技术3、工作原理交互方式4、XMLHttpRequest常用属性和方法(1)onreadystatechange 属性(2)readyState 属性(3)responseText 属性其他属性(4)open() 方法(5)send() 方法其他方法5、传统JavaScirpt 的 ajax操作1、简介AJAX —— Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。A

2021-08-23 09:53:26 186

原创 smartupload.jar实现文件上传,下载(附下载链接)

JavaWeb使用smartupload.jar实现文件上传,下载1、先将smartupload.jar 导入到项目中jar包下载地址:点击去下载2、上传页面的准备注:(1)form标签中要添加enctype属性(2)提交方式必须是post<html><head> <title>文件上传</title></head><body><form method="post" action="/upload"

2021-08-16 09:41:03 1897 1

原创 JavaWeb知识,重定向和转发的对比,get和post的区别,Servlet的生命周期

文章目录1、Servlet工作原理2、Servlet的生命周期*3、get和post的区别4、重定向和转发的对比重定向:转发:1、Servlet工作原理​ (1) Servlet接⼝定义了Servlet与servlet容器之间的契约。这个契约是:Servlet容器将Servlet类载⼊内存,并产⽣Servlet实例和调⽤它具体的⽅法。但是要注意的是,在⼀个应⽤程序中,每种Servlet类型只能有⼀个实例。(单例)​ (2)⽤户请求致使Servlet容器调⽤Servlet的Service()⽅法,并传⼊

2021-08-15 22:42:45 354

原创 解决 servlet 输出流 向 jsp 输出时 数据时乱码 问题

问题描述:​ 新增一个学生信息,添加成功则向jsp输出一段js代码,弹窗添加成功或失败。​ 结果,弹窗结果乱码,然后我也 设置了编码格式,也没得到解决,经过多方思考,得到解决方案!解决:​ 在获取输出流之前 ,设置响应的编码格式原代码:int i = service.insertStu(student);PrintWriter writer = resp.getWriter();resp.setContentType("text/html;charset=UTF-8");if(i

2021-08-15 22:25:27 253

原创 一遍看懂mysql事务的ACID,并发问题,如何解决(超详细图文)

文章目录事务1、事务的语法2、事务的ACID特性1、原子性(Atomicity)2、一致性(Consistency)3、隔离性(Isolation)4、持久性3、事务的并发问题4、事务隔离级别错误演示:读未提交(READ_UNCOMMITTED)读已提交(READ_COMMITTED)可重复读(REPEATABLE_READ)顺序读(serializable)5、不同的隔离级别的锁的情况6、隐式提交事务事务(Transaction)是由一系列对系统中数据进⾏访问与更新的操作所组成的⼀个程序执行逻辑单元。

2021-08-15 22:21:00 266

原创 mysql中对数据库的数据进行增删改的sql操作(insert ,delete,update)

DML(Data Manipulation Language) 数据操作语言,用来定义数据库记录(数据)增删改小知识:在mysql中,字符串类型和日期类型都要用单引号括起来。空值:null1)插入操作:insertinsert into 表名(列名) values(数据值); (列名省略的时候,列值的顺序是表中列的顺序)insert into student(stuname,stuage,stusex,birthday) values('张三1',18,'a','2000- 1-1

2021-08-15 21:56:03 205

原创 mysql中对数据库,数据表,数据列操作的sql语句总结归纳

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等对数据库操作1)创建create database 语句用于创建新的数据库://create database 数据库名CREATE DATABASE mydb1;//create database 数据库名character set 编码方式 CREATE DATABASE mydb2 character SET GBK;//create database 数据库名 set 编码方式

2021-08-15 21:53:32 225

原创 mysql数据库用户创建授权删除sql语句操作

文章目录DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。1)创建用户:2)用户授权3)用户权限查询:4)撤销用户权限5)删除用户DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。1)创建用户:create user 用户名@指定ip identified by 密码;create user test123@localhost IDENTIFIED by 'test123'create user 用户名@

2021-08-15 21:48:57 370

原创 mysql数据库查询(select)语句总结与归纳

文章目录DQL(Data Query Language):数据查询语言,用来查询记录(数据)查询。1)简单查询2)条件查询3)模糊查询4)字段控制查询5)排序6)聚合函数7)分组查询8)HAVING 子句9)LIMIT10)分页查询DQL(Data Query Language):数据查询语言,用来查询记录(数据)查询。数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。查询返回的结果集是一张虚拟表。语法: SELECT 列名 FROM 表名 【WHERE --> BROU

2021-08-15 21:45:35 2276

原创 Java反射机制知识大全+通过反射获取注解的值(实现简易ORM框架)

文章目录反射概述类加载器加载配置文件所有类型的Class对象得到Class的几种方式获取Constructor通过class对象 获取一个类的构造方法Constructor 创建对象获取Method通过class对象 获取一个类的方法Method 执行方法获取FieldField属性的对象类型获取注解信息获取类/属性/方法的全部注解对象根据类型获取类属性方法的注解对象创建ORM框架小demo1、创建列名注解2、创建 表名注解3、创建实体类Book 并加上注解4、TEST:获取表明,字段属性运行结果:反

2021-08-08 22:05:38 647

原创 Java四大线程池Executors 介绍

线程池线程池Executors如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低 系统的效率,因为频繁创建线程和销毁线程需要时间. 线程池就是一个容纳多个线程的容器,池中的线程可以反复使用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。线程池的好处降低资源消耗提高响应速度提高线程的可管理性四种线程池. ExecutorService1、缓存线程池(长度无限制)执行流程:判断线程池是否存在空闲线程存在则使用不存在,则创建

2021-08-08 21:44:16 228

原创 多线程通信问题--生产者与消费者(Java实现案例)

多线程通信问题比如线程A要去网上下载音乐,B要去网上播放A下载完成后的音乐。这时就要A通知B…进行通信生产者与消费者有生产者:厨师消费者:服务员厨师做好一份食物(food)后 服务员 上菜,然后服务员把盘子送回到厨师,厨师继续做好食物放入盘子中,让服务员上菜。public class Communication { /** * 多线程通信问题,生产者与消费者问题 * @param args */ public static void main(St

2021-08-08 21:39:16 126

原创 线程概念及其六种状态

文章目录线程与进程线程调度同步与异步并发与并行线程的六种状态线程与进程进程是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间线程是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行。一个进程最少有一个线程线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成多个线程线程调度分时调度所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间抢占式调度优先让优先级高的线程使用cpu。如果线程的优先级相同,那

2021-08-08 21:30:22 89

原创 Java线程安全(卖票案例) 如何解决线程安全(synchronized ,显示锁Lock)

文章目录线程安全解决方法:1、同步代码块2、同步方法3、显示锁显示锁与隐式锁的区别4、公平锁与非公平锁线程安全经典问题:卖票问题,多个线程一起执行该任务,当余票只有1一张时,三个线程都进入了卖票,这时就会发生错误。导致了余票<0 的问题public class ThreadDemo1 { public static void main(String[] args) throws InterruptedException { // 线程安全问题 Runnab

2021-08-08 21:22:34 333

原创 用户线程与守护线程

用户线程 守护线程在java中有两类线程:User Thread(用户线程)Daemon Thread(守护线程)用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆只要当前JVM实例中还存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最经典的应用就是GC(垃圾回收器),他是个很称职的守护者。User和Daemon两者几乎没有区别,唯一的不同之处

2021-08-08 21:00:48 120

原创 Java如何中断线程(使用interrupt方法)

线程如何停止停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。三种方式:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。使用 stop() 方法强行终止线程,但是该方法已被弃用(强制停止,会导致一些使用的资源未得到释放…)使用 interrupt 方法中断线程(这里只是中断标志)。interrupt() 方法并不像在 for 循环语句中使用 break 语句那样干脆,马上就停止循环。调用 interrupt() 方法仅仅是在当前线程中

2021-08-08 20:55:30 842

原创 Java多线程的三种实现方式(继承Thread ,实现Runnable接口,实现Callable接口)

文章目录1、继承Thread 实现run方法2、 实现Runnable接口3、 Callable接口JAVA多线程实现方式主要有三种: 继承Thread类、 实现Runnable接口、 使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread 实现run方法public class ThreadDemo1 { public static void main(String[]

2021-08-08 20:16:50 595

原创 Java注解

文章目录注解简介学习重点内置注解元注解简介种类类型自定义注解注解架构定义格式注意事项DEMO注解简介Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和注释不同,Java 标注可以通过反射获取标 注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。主要用于:编译格式检查反射中解析

2021-08-05 21:51:30 593

原创 Java枚举

枚举用于定义有限数量的一组同类常量,例如:​ 错误级别:​ 低、中、高、急​ 一年的四季:​ 春、夏、秋、冬​ 商品的类型:​ 美妆、手机、电脑、男装、女装…在枚举类型中定义的常量是该枚举类型的实例。JDK1.5之前的写法:将构造方法私有化,在类的内部创建静态全局对象,之后就不能改变。public class Level { public static final Level LOW = new Level(1); public static final L

2021-08-05 21:33:48 46

原创 java网络编程--客户端与服务端通信(socket)

网络编程案例实现客户端与服务器端的交互使用Socket实现网络编程客户端: 使用socket连接服务器public class Client { public static void main(String[] args) throws IOException { // 1. 连接到服务器 Socket socket = new Socket("127.0.0.1",55555); // 2. 得到 字节输入流 输出流 并且转化

2021-08-04 22:48:34 1175

原创 部分属性序列化和反序列化(Serializable)

部分属性序列化和反序列化实现部分字段序列化的方式:使用transient修饰符使用static修饰符默认方法writerObject 和 readObject使用Externalizable实现Java序列化1、使用transient修饰符修改实体类,将实体类中不想序列化的属性添加transient修饰词。demo:pojo类package com.huang.serial;import java.io.Serializable;import java.util.List;

2021-08-03 22:44:14 1230

原创 IO流知识点大全

文章目录IO流OutputStreamFileOutputStreamInputStreamcloseread子类FileInputStreamWriterFileWriter子类ReaderFileReaderFlush刷新管道字节流 "装饰"为 字符流PrintStreamBufferedReader收集异常日志properties序列化 与 反序列化try-with-resourcesIO流IO流概述:将文件从C盘剪切到D盘这种操作,可以将这种数据传输操作,看作一种数据的流动,按流动的方向

2021-08-02 22:28:27 171

原创 File类与FileFilter接口

File此类的定义如下:public class Fileextends Objectimplements Serializable, Comparable<File>文件和目录路径名的抽象表示。常见字段:变量和类型字段描述static StringpathSeparator与系统相关的路径分隔符,为方便起见,表示为字符串。static charpathSeparatorChar与系统相关的路径分隔符。static Strin

2021-08-01 22:32:46 266

原创 HashMap原理+源码初探

HashMap原理HashMap是由 对象数组+链表 构成通过 对象的hashcode值,对数组长度取余 得到 下标值如: 数组长度是 16;一个hashcode值是17, 另一个hashcode值是33 对16取余 都为1;就需要都放入第一个哈希桶中。这时都要存放在1下标这个位置 就要使用链表,一个个连起来。jdk8版本,进行了优化,当这个哈希桶已经存储七个了对象了, 到达8的时候 -> 由链表变为红黑树。即 哈希桶中的数据量大于8时,从链表转换为红黑二叉树;当哈希桶中的数据量减少到6时,

2021-07-25 15:46:46 166 4

原创 二叉树的创建,遍历,排序

二叉树文章目录二叉树1、什么是二叉树2、二叉树种类二叉查找树(binary search tree):斜树:满二叉树完全二叉树3、二叉树的一些性质4、二叉树的遍历先序遍历中序遍历后序遍历5、代码实现树的结构手动构建二叉树+遍历排序二叉树1、什么是二叉树二叉树是树的一种,每个节点最多可具有两个子树,即结点的度最大为 2(结点度:结点拥有的子树数)。2、二叉树种类二叉查找树(binary search tree):当前根节点的左边全部比根节点小,当前根节点的右边全部比根节点大。斜树:所有结点

2021-07-25 12:11:36 203

原创 分析 equals、hashCode 与内存泄露

分析 equals、hashCode 与内存泄露1、equalsequals的作用:比较两个对象的地址值是否相等equals() 方法再 object类中定义如下:public boolean equals(Object obj) { return (this == obj);}equal方法是能重写的。没有重写的情况下 比较的就是地址值java对equals的要求:对称性:如果 x.equals(y)返回是“true”,那么 y.equals(x)也应该返回是“true”。

2021-07-25 11:57:10 133

原创 String类 和 常量池

String类 和 常量池文章目录String类 和 常量池1、常量池的位置2、String对象的两种创建方式:3、String类型的常量池比较特殊。使用方式主要有两种4、 String字符串拼接5、String类的常用方法构造方法方法1、常量池的位置jdk 1.7之前常量池是存放在永久代(hotspot虚拟机对方发区的实现)中jdk 1.7常量池从永久代中移到了堆内存中,属于堆内存的一部分。Jdk 8 移除了永久代并由元空间(metaspace)代替,存放在本地内存(native space)中

2021-07-25 11:51:02 711

原创 Java集合大全

java集合所有的类集操作的接口或类都在 java.util 包中。java类集结构图:1、Collection 接口1.1、介绍Collection 接口是在整个 Java 类集中保存单值的最大操作父接口,里面每次操作的时候都只能保存一个对象的数据。此接口定义在 java.util 包中public interface Collection<E>extends Iterable<E>此接口使用了泛型技术,在JDK1.5之后为了使类集操作更加安全,所以引

2021-07-25 10:51:40 391 2

原创 Comparable与Comparator

Comparable与Comparator1、ComparableComparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。package java.lang;public interface Comparable<T> { public int compareTo(T o);}此接口只有一个方法compare

2021-07-24 21:05:56 169 1

原创 java解析xml

解析xml文章目录解析xmlJava解析xml1、SAX解析2、DOM解析3、JDOM解析4、DOM4J解析DOM4J 解析xml步骤:文档对象 Document元素对象 ElementDEMO案列(解析本地xml)DEMO案列(解析网络xml)DOM4J - XPATH解析XMLJava生成XML使用Document生成xml节点使用XStream工具生成xml可扩展标记语言(eXtensible Markup Language)特性:xml具有平台无关性,是一门独立的标记语言xml具有自我描

2021-07-23 22:30:23 358 1

原创 JSON解析 Gson与FastJson

Json解析文章目录Json解析Json简介GsonFastJsonJson简介Json: JavaScript object Notation js对象简谱,是一种轻量级的数据交换格式。例子:{ "name":"张三", "age":18, "pengyou":["小杰","李四","王五",{ "name":"james", "info":"篮球player" }], "company":{ "name":"腾讯", "level":10 }}能干

2021-07-22 10:59:31 88

原创 BigDecimal

BigDecimal1、 描述由于计算机底层原理 可能会出现进度的丢失,这是BigDecimal类就能很精确的控制!BigDecimal类提供算术,比例操作,舍入,比较,散列和格式转换的操作。 该toString()方法提供的规范表示BigDecimal 。BigDecimal类使用户可以完全控制舍入行为。 如果未指定舍入模式且无法表示确切结果,则抛出异常; 否则,通过向操作提供适当的MathContext对象,可以执行计算到选定的精度和舍入模式。2、 常用字段基本已过时3、常用

2021-07-21 21:31:38 321

原创 java日期相关类

Datepublic class Dateextends Objectimplements Serializable, Cloneable, Comparable<Date>1、 描述Date类表示特定的时刻,精度为毫秒。在JDK 1.1之前, Date类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间

2021-07-20 22:01:47 71

原创 Java常用类库1

Java.util.Objects1、描述此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括null或null方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。2、常用方法​ object类中equals方法 当 对象为空时会报NullPointerException ,而此方法不会。…更多方法请参考JDk API建议参考中文版(尽量看源

2021-07-19 20:37:46 85

原创 面向对象高阶

3、 面向对象高阶3.1、重写(override) 规则:参数列表必须完全与被重写方法的 相同返回类型必须完全与被重写方法的返回类型相同;访问权限不能比父类中被重写的方法的权限低。如:父类的方法是 public 修饰,则子类重写方法只能是public父类的成员方法只能被子类重写声明为static和private 的方法不能被重写,但是能够被再次声明3.2、重载(Override)与重写(Overload)的区别发生的位置:重写是发生在子父类中重载是发生在一个类中参数列表限

2021-07-18 21:14:22 89

原创 面向对象进阶

2、面向对象进阶2.1、封装在开发中, 为了避免出现逻辑错误,(使用private修饰) 我们建议对所有属性进行封装,并为其提供setter及getter方法进行设置和取得操作。很大程度为了安全着想!!2.2、this调用类中的属性调用类中的方法或构造方法表示当前对象2.3、static简单理解:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。并且不会因为对象的多次创建 而在内存中建立多份数据重点:

2021-07-17 21:36:39 52

原创 面向对象基础

1.1、 面向对象思想面向对象是相对与面向过程来讲的,指的是将相关的数据和方法组织成为一个整体来看待面向对象到面向过程,是程序员思想上,从执行者到指挥者的转变面向对象(Object Oriented)是也一种软件开发方法。是计算机编程技术发展到一定阶段的产物例子:人把大象装入冰箱面向过程: 人 -》打开冰箱 -》装入大象 -》关闭冰箱面向对象:人 -》请一个操作冰箱的工人 -》指挥工人装大象在举一个例子:人 做饭+洗衣+吃饭 + 洗碗面向过程:做饭,洗衣,洗碗都自己干面向对象:找个保姆,每

2021-07-16 20:36:24 72

原创 java泛型

泛型1、概念泛型:即”参数化类型“ 。就是将类型由原来的具体的类型参数化,类似与方法中的变量参数,此时类型也定义成参数形式(也称为类型形参),然后在使用/调用时传入具体的类型(类型实参)。2、使用泛型类class Person<T>{ private T data; public T getData() { return data; } public void setData(T data) { this.da

2021-07-15 21:52:20 72

空空如也

空空如也

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

TA关注的人

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