自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jdbc

JDBC是什么?JDBC是JavaDataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。使用Java程序访问数据库的时候,Java代码并不是直接通过tcp连接去访问数据库,而是通过jdbc接口访问,而jdbc接口通过jdbc驱动去访问数据库。JDBC是一套接口规范,它在哪呢?就在Java的标准库java.sql里放着,不过这里面大部分都是接口。接口并不能直接实例化,而是必须实例化对应的实现类,然后通过接口引用这个实例。那么问题来了:JDBC接口的实现类在哪?因为JD

2021-03-24 18:05:49 328

原创 悲观锁和乐观锁

乐观锁(StampedLock):乐观的估计读的过程中大概率不会有写入。悲观锁(ReadWriteLock):在读的过程中拒绝有写入,有写入必须等待。public class Point { private final StampedLock stampedLock = new StampedLock(); private double x; private double y; public void move(double deltaX, double deltaY

2021-03-23 21:43:33 73

原创 线程同步

多个线程同时读写共享变量时,会出现数据不一致的问题。这时就需要解决线程同步的问题。public class Main{ public static void main(String[] args) throws Exception{ var add=new AddTread(); var add=new DecThread(); add.start(); dec.start(); add.join(); dec.join(); System.out.println(Counter.coun

2021-03-23 21:14:00 79

原创 多线程

进程与线程在计算机中,我们把一个任务称为一个进程,浏览器是一个进程,英雄联盟是一个进程,QQ音乐是一个进程。在某些进程内部还需要执行多个子任务。比如我们在使用视频播放器的时候,播放器可以让我们听到声音,还可以看到画面,还可以看到弹幕。这些子任务都称之为线程。进程和线程的关系:一个进程可以包含一个或者多个线程,当至少有一个线程。有进程之后才有线程。操作系统调度的最小单位是线程,一般操作系统都采用抢占式多任务方式,如何调动线程完全有操作系统直接决定。区别1,创建进程比创建线程的开销大。2,进程间通

2021-03-23 18:55:55 68

原创 序列化

序列化序列化是指把一个Java对象变成二进制内容,本质上是一个byte[]数组。便于将Java对象存储到本地文件中。反序列化把一个二进制内容(byte[]数组)变为Java对象。反序列化时,有JVM直接构造出Java对象,不调用构造方法。安全性:因为Java的序列化机制可以导致一个实例能直接从byte[]数组创建,而不经过构造方法,因此,它存在一定的安全隐患。一个精心构造的byte[]数组被反序列化后可以执行特定的Java代码,从而导致严重的安全漏洞。实现序列化一个Java对象要能序列化,必须

2021-03-23 17:44:16 49

原创 Filter模式

Filter模式(装饰器模式)通过一个基础的组件再叠加各种附加功能组件的模式,叫Filter模式(装饰器模式)为了解决依赖继承会导致子类数量失控的问题,JDK首先将InputStream分为两大类:一类是直接提供数据的基础InputStream,例如:FileInputStreamByteArrayInputStreamServletInputStream…一类是提供额外附加功能的InputStream,例如:BufferedInputStreamDigestInputStream

2021-03-23 17:34:28 524

原创 IO流

InputStram和OutputStream 输入字节流和输出字节流在Java中,InputStream代表输入字节流,OuputStream代表输出字节流,这是最基本的两种IO流。int read():会读取输入流的下一个字节,并返回字节表示的int值,如果已经读到末尾,返回-1表示不能在进行读写了。FileInputStream:从文件流中读取数据,是InputStream的一个子类。public void readFile()throws IOException{ //创建一个FileI

2021-03-23 17:06:30 50

原创 Queue

队列(Queue)是一种经常使用的集合。Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。它和List的区别在于,List可以在任意位置添加和删除元素,而Queue只有两个操作:把元素添加到队列末尾;从队列头部取出元素。**int size():**获取队列长度;**boolean add(E)/boolean offer(E):**添加元素到队尾;**E remove()/E poll():**获取队首元素并从队列中删除;**E element(

2021-03-22 21:46:36 99

原创 map集合和set集合

什么是map集合map是一种通过**键值(key-value)**对映射表的数据结构。通过key可以实现快速查找元素。方法put(key,value) 添加get(key) 查找遍历map:用for each来循环遍历map实例的**keyset()**返回的set集合。同时遍历key和value可以使用for each循环遍历map对象的entrySet()集合。包含每一个key-value正确编写equals方法和hashCode方法1,在Map的内部,对key做比较是通过equa

2021-03-22 21:37:32 89

原创 编写equals方法

正确的编写equals方法必须满足自反性必须满足对称性必须满足传递性必须满足一致性也就是说正确编写equals方法要定义一个相等的逻辑。即哪些字段相等,就认为实例相等,如果不调用List集合的contains方法和indexOf方法就没有必要写equals方法。...

2021-03-22 20:49:08 109

原创 list集合

list介绍list是一种有序列表接口,具体实现类有ArrayList,LinkedList,ArrayList实现原理是内部使用一个比实际存储元素大的一个动态数组来存储所有元素,如:你要存储5个元素,那list就使用可以存储6个元素的列表来存储数据。list主要接口方法boolean add():在末尾添加一个元素。boolean add(index):在指定索引处添加一个元素int remove():删除int remove(index):删除指定索引的元素get(int index):获

2021-03-21 21:54:30 62

原创 集合

集合类 collectionJava标准库自带的Java.util包提供了集合类:collection,它是除map外所有集合类的根接口,集合类型集合类型有三种:list:一种有序列表的列表集合,set:一种保证不重复的无序列表集合,map:一种通过键值对(key-value)存储的集合集合的特点:1,接口和实现类的分离,接口只定义方法,实现类写具体方法,例如:有序列表的接口是list,实现类有ArrayList,LinkedList。2,支持泛型,可以限制在同一集合中只能放一种类型的元

2021-03-21 20:24:52 81

原创 泛型

泛型使用泛型就是定义一种模板,,例子:ArrayList<String> strlist=new Arrarylist<String>();这个strlist数组就只能装String类型的值了。使用泛型时,把泛型参数替换为需要的class类型,如:ArrayList,ArrayList等。可以省略编译器能自动推断出的类型,例如:List list = new ArrayList<>();;泛型的实现方式:擦拭法擦拭法是指,虚拟机对泛型其实一无所知,所有的

2021-03-21 18:33:03 67

原创 Java核心类

StringBuilderJava标准库里提供了StringBuilder,它是一个可变对象,可以预先分配缓存区,往StringBuilder中新增字符的时候,不会创建新的临时对象。StringBuilder sb=new StringBuilder(1024);for(int i=0;i<100;i++){sb.append("i");sb.append("o");}String s=sb.toString();还可以进行链式操作,里面定义的append()方法会返回this,这样

2021-03-21 17:54:25 103

原创 Java基础笔记

向上转型把一个子类类型安全的的变为父类类型的赋值,称为向上转型。eg:Student s= new Student(); Person p=s;向下转型把一个父类类型强制转型为子类类型,就是向下转型Person p1 = new Student(); // upcasting, okPerson p2 = new Person();Student s1 = (Student) p1; // okStudent s2 = (Student) p2; // runtime error! C

2021-03-21 16:29:14 79

转载 MySQL忘记root密码 【来自官方文档的方法,亲测有用】

今天要在MySQL创建数据库,需要使用root用户登录。执行 mysql -u root -p,输入密码。结果傻眼了,试了n遍,都没输入正确。看来只能重置密码或找回密码。习惯性先在百度找了一圈。千篇一律都是“skip-grant-tables”跳过验证的方法。这个方法我测试是不成功的。好吧,打开方式有问题。应该去MySQL官网找解决方案。一般有问题,找官方文档比较靠谱,而且节省时间。打开MySQL官网,在其首页搜缩框输入“forget password”搜索,意思是“忘记密码”。(搜索框有点小,点击

2021-03-18 20:49:25 307

原创 SpringBoot项目整合Mybatis puls

#SpringBoot前言这最近学习了SpringBoot,发现Mybatis-plus操作数据库很方便,记录一下。提示:以下是本篇文章正文内容,下面案例可供参考一、Mybatis是什么?MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架。我觉得就是代替DAO,DButis的一个框架应用。二、使用步骤1.引入库,下载Mybatis plus的jar包,同时,为了方便后面的代码生成,使用了freemarker页面模板。代码如下(示例):<!

2021-03-17 16:37:08 88

原创 网站全球加速技术

网站全球加速技术文章目录前言1.使用步骤、2.打开菜单栏,找到CDN.3.根据提示购买DCDN.4.填写域名管理.前言实现网站全球加速提示:以下是本篇文章正文内容,下面案例可供参考网站全球加速是什么?网站加速是用CDN技术,大白话就是云服务器商在每个城市都搭得有服务器,当你购买cdn服务的时候,你就可以使用每个城市的服务器。当用户访问你的网站的时候,就可以访问用户所在地地的服务器。一般网站是面向全国用户,假如你的网站是在北京,那么贵州的用户要访问你的网站,速度就比较慢。cdn的出现解决了这

2021-03-17 15:54:21 420

原创 Linux常用命令详解

Linux常用命令

2020-10-13 17:14:37 89

原创 win 常用命令

常用程序快捷打开方式dxdiag :查询电脑硬件配置信息**control**:打开控制面板services.msc :打开服务**msconfig**:打开系统配置regedit:打开注冊表ncpa.cpl:网络连接firewall.cpl :防火墙devmgmt.msc:设备管理器diskmgmt.msc:磁盘管理器compmgmt.msc:计算机管理winver:检查window版本**write**:写字板**mspaint**:画图板**notepad**:打开记事.

2020-10-13 16:54:02 92

原创 windows MySQL安装

1,官网下载MySQL安装包。https://dev.mysql.com/downloads/mysql/2, 下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\web\mysql-8.0.11 下。3,接下来我们配置MySQL的配置文件。打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息[client]# 设置mysql客户端默认字符集default-character

2020-10-13 15:42:20 66

原创 windows安装mysqls

1,官网下载MySQL安装包https://dev.mysql.com/downloads/mysql/ ,下载window版本注意要点击No thinks,just start my download,不需要登录。2,下载完,我们将zip包解压到相应目录,这里我将解压后的文件夹放在 C:\web\mysql-8.0.11 下。3,接下来我们需要配置下 MySQL 的配置文件打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.i

2020-09-01 19:25:22 125

转载 linux安装nginx

安装nginx的时候踩了不少坑,经历九九八十一难终于诺曼底登录,马上柏林总攻。nginx安装教程

2020-08-29 10:25:51 83

原创 docker 命令 (以下载tomcat为例)

1,docker 搜索镜像资源docker search tomcat2,拉取镜像docker pull tomcat3,docker 查看已经下载的镜像docker images4,在docker里创建tomcat容器docker run -d -p 8080:8080 --name mytomcat -v /data/mytomcat/webapps:/usr/local/tomcat/webapps tomcat5,docker查看已经存在的容器docker ps -a6

2020-08-28 09:22:45 545

空空如也

空空如也

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

TA关注的人

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