- 博客(30)
- 资源 (7)
- 收藏
- 关注
原创 同步控制——synchronized关键字
同步是java中一个很重要的知识点,也是比较难以理解的知识点。经常在学会了,学忘了,学废了之间循环,抽点时间系统的整理一下同步的知识点,梳理一下逻辑synchronized关键字先看看这个synchronized关键字,synchronized有五种比较常用的方法修饰代码块修饰变量修饰普通方法修饰静态方法修饰类先来看看修饰代码块...
2021-03-09 18:02:47 1513
原创 将已有的本地依赖jar包发布到本地仓库,项目直接引用本地的jar包
jar包发布到本地仓库mvn install:install-file -Dfile=D:\UserData\Downloads\pe-enterx-guard-2.0.jar -DgroupId=com.mhsb -DartifactId=pe-enterx-guard -Dversion=2.0 -Dpackaging=jar红字代表本地jar的绝对路径蓝字是项目组织唯一的标识符,对应pom文件的com.mhsb绿字是项目的唯一标识符,对应pom文件中的pe-enterx-guard橙字是项目
2020-12-18 09:40:00 502
原创 sql优化(持续更新)
1.关联表查询,小结果集驱动大结果集2.in和exist,后面数据量大的时候用exist,小的时候用in3.尽量不使用is not null,必须使用时查询结果只包含索引字段才会走索引4.多表查询,如果查询某张表的字段少,并且不需要通过它的字段进行过滤,可以直接用子查询5.联合索引遵从最左前缀原则...
2020-11-18 10:59:08 221 1
原创 浅析java设计模式之适配器模式
适配器模式描述:适配器模式的出现是为了解决扩展接口时,在不更改现有的代码的基础上,让一个接口拥有另一个接口的功能或者让现有的接口兼容新系统或者接口的规范。两个独立接口之前通过适配器类来建立调用关系,在扩展了接口的基础上,对现有代码的影响尽可能的小。常用场景:类似于中国移动的SIM卡在不同手机中的使用对其大小和规格也有不同的要求,因此中国移动的电话卡支持在卡的外部进行边框的安装和拆除,在老年机中用的是最大的边框,在智能机中用的是中等边框,在苹果手机中用的是最小边框。这个场景中,SIM卡中的最小的那片就
2020-09-21 14:01:23 144
原创 浅析java设计模式之原型模式
原型模式描述:原型模式的主要目的是在需要频繁创建重复的对象的时候,针对一个源对象,创建这个源对象的克隆对象。特别是在创建复杂对象时保证了性能。常用场景:在创建很复杂,或者创建对象时消耗贼大的场景中可以使用原型模式。比如创建对象时需要大量的sql语句去赋值,这时,为了避免数据库IO,内存和cpu的消耗就可以使用原型模式。项目结构:实现:1.创建一个实现了Cloneable类的抽象类Mycloth/** * @author Carl * @version 1.0 * @date 202
2020-09-11 17:43:20 133
原创 浅析java设计模式之建造者模式
建造者模式描述:建造者模式的主要目的是创建一个包含同一些种类的对象,根据其排列组合形成不同复杂对象时使用的创建型模式。常用场景:系统中一个复杂对象通过其他多个对象不同的组合所构成的时候,可以使用建造者模式。比如点外卖时点套餐,套餐包含一份主食,一份小食,一杯饮料,此时就很适合使用建造者模式。项目结构:实现:1.Clothing服装接口类,即复杂对象/** * @author Carl * @version 1.0 * @date 2020/8/14 14:24 * @descri
2020-09-10 15:32:52 249
原创 浅析java设计模式之单例模式
单例模式描述:单例模式是系统中单例的类只有一个实例化对象,系统中的所有对该类的调用和访问都通过该对象来进行常用场景:当一个系统中需要注意实例的个数,减少实例的频繁创建和销毁造成的资源浪费。比如系统中的字典类就可以用单例模式来实现项目结构:实现:1.懒汉式(最简单最基本的实现方法)这种是单例模式实现最简单的方式,但是在多线程下会有并发问题。/** * @author Carl * @version 1.0 * @date 2020/8/10 14:29 * @descriptio
2020-09-08 16:59:45 194
原创 浅析java设计模式之抽象工厂模式
抽象工厂模式描述:抽象工厂模式可以理解为将工厂模式中的多个不同维度的工厂封装成一个总工厂,抽象工厂模式就好像是富士康,富士康里有制作球类的工厂或者制作形状的工厂,制作球类的工厂又可以制作篮球和足球,制作形状的工厂又可以制作圆形和方形的工厂。像这样把生产不同类型的物品的工厂抽象成一个抽象概念的工厂,从这个抽象的工厂去获取具体生产的工厂并生成最终具体的货物的模式就是抽象工厂模式。常用场景:在系统具有多个获取对象的工厂,并且这些工厂生产的东西在一定场景下具有一定的联系的情况下,可以将工厂再次封装为一个总的
2020-09-07 11:25:32 193
原创 浅析java设计模式之工厂模式
工厂模式描述:工厂模式实际上就是提供一个获取对象实例的工厂,比如一个球类工厂生产篮球和足球,通过调用工厂的build方法去获得具体球类的对象,至于如何去创建和获得这个对象实例则不是我们需要关心的东西。常用场景:在不同条件下明确需要获得不同的对象,而其创建对象的方式并不被关心的时候。如服装厂,获取衣服和裤子等服装。项目结构:实现:1.工厂模式的接口类/** * @author Carl * @version 1.0 * @date 2020/8/4 14:03 * @descrip
2020-09-07 11:05:09 184
原创 java23中设计模式汇总
23种设计模式整理和实现,持续更新中,源码在更新完成之后会一次性上传创建型模式(5种)1、工厂模式2、抽象工厂模式3、单例模式4、建造者模式5、原型模式结构型模式(7种)1、适配器模式2、桥接模式3、组合模式4、装饰者模式5、外观模式6、享元模式7、代理模式外加一个过滤器模式,该模式不算在23中模式中行为型模式(十一种)1、责任链模式2、命令模式3、解释器模式4、迭代子模式5、中介者模式6、备忘录模式7、观察者模式8、状态模式9、策略模式10、模板模式1
2020-09-07 10:46:07 148
原创 springboot+druid数据库连接池配置
springboot+druid数据库连接池配置引入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.20</version></dependency>在application.yml项目配置文件中加入dr
2020-08-07 13:48:38 6044 3
原创 idea的springboot项目+热部署+自动编译实现
springboot自带了devtools依赖包提供热部署功能,在eclipse中只要在项目的pom.xml文件中添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId>...
2019-08-20 10:59:29 1854
原创 验证15位,18位身份证合法性
package org.asyware.insurance.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.asyware.insurance.service.impl.Ba...
2019-08-15 10:07:33 601
原创 java报错noclassdeffounderror jar方面——解决方法
项目从本地导入jar包,编译时没有报错,运行时报noclassdeffounderror搜索了一下是由于找不到jar导致的,原因是导入本地jar包时只向项目中导入,并没有向tomcat中导入。在idea中点击File-project Structure或者通过快捷键 :ctrl+shift+alt+s进入Project Structure,之前在modules或者libraries中导入的包由于...
2019-07-30 16:10:23 2118
原创 java获取系统时间并转换为指定格式
常常遇到需要获取系统时间,但是每次都忘记怎么写,记录一下Date date1 = new Date() ; SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); String date = sdf.format(date1); System.err.println(date);...
2019-07-22 09:16:40 2840
原创 java高并发编程——JDK并发容器
一、并发集合简介 JDK的并发容器大部分都在java.util.concurrent包中。1.ConcurrentHashMap:一个高效的HashMap,可以理解为线程安全的HashMap。2.CopyOnWrtieArrayList:与ArrayList相似,在读多谢少的场景中,性能比Vector好很多。3.ConcurrentLinkedQueue:高效的并发队列,使用链表实现,可...
2019-07-19 16:59:38 206
原创 使用HttpClient访问springboot项目接口返回JSON并获取指定key的value值
发送带json数据的请求,获取响应,并通过key=result,key=name获取响应正文多层json格式数据中name对应的valueHttpClient发送post请求过程1.创建httpclient实例2.设置请求的url路径3.创建httppost实例4.设置entity字符串数据5.通过httpclient.execute()方法发送请求,并返回httpsponse对象。...
2019-03-25 16:53:26 3262
原创 JSON格式字符串解析,转换为JSONObject
有时候收到一个String 类型的json字符串,需要获取指定key的value值,可以先将String转换为json对象,然后通过get方法获取指定key的valueString str = "{\"cpu\":\"80%\",\"磁盘\":\"80G\",\"内存\":\"80%\"}"; JSONObject json = JSONObject.parseObject(str); ...
2019-03-25 16:06:42 6617
原创 Springboot项目连接mysql数据库时区错误
报错的主要信息是:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.最简单的方法是直接修改mysql数据库的时区,登录mysql输入show variables like '%time_zone%';报错的时候最后一栏time_zone 显示的是syst...
2019-03-22 14:07:11 1850
原创 Java四大作用域
Java作用域分为public,protected,friendly,private.作用域与可见性当前类同一package子类其他packagepublic√√√√protected√√√×default(friendly)√√××private√×××public关键字在所有的包、类中都可以访问prote...
2019-03-14 15:11:04 1711
原创 String、Stringbuffer、StringBuilder的区别
一、三者的主要区别String: 不可变字符串,初始值可以为null,线程不安全,运行速度最慢;StringBuilder: 可变字符串,初始值不能为null,线程不安全,运行速度最快StringBuffer: 可变字符串,初始值不能为null,线程安全,运行速度比StringBuilder慢一点点;二、详细解释 String变量是不可变量,每次对对象的值的修改实际上都是改变对象指向不...
2019-03-14 14:57:07 103
原创 java高并发编程(五)——线程池
一、什么是线程池 多线程编程可以很大程度上的运用cpu资源。但是线程数量过大时,频繁的创建和销毁线程,会占用很多cpu和内存资源,从而影响系统稳定性,降低代码效率。为了避免频繁的创建和销毁线程,可以让现场进行复用,线程池就满足了这一需求。线程池中存在着创建好的很多线程,这些线程处于空闲状态,当程序需要使用线程时,从线程池中取几个空闲线程。当任务完成后,线程并不立即关闭,而是将线程退还给线程池,...
2019-03-11 14:54:25 311
原创 mybatis报错### The error may involve defaultParameterMap ### The error occurred while setting paramete
前两天写的一个springboot+mybatis的小项目在一个修改数据库数据的功能出现了###The error may involve defaultParameterMap###The error occurred while setting parameters的错误。前端传了两个json值到后端,但是第一个值没有问题,第二个值一直为空,检查了实体类的属性名,json的键名,url...
2019-03-06 14:05:59 10188
原创 java高并发编程(四)——JDK并发包
一、同步控制(lock的使用) 重入锁(lock)可以完全替代synchronized关键字,重入锁的性能要优于synchronized,但是在JDK 6.0开始,JDK对synchronized上做了大量优化,因此两者差距不大。下面是使用lock的案例。public class LockTest implements Runnable { private static Lock loc...
2019-03-01 14:37:08 283
原创 java高并发编程(三)——线程基础知识
java线程基础知识一、volatile关键字 为了确保线程具有原子性,可见性,有序性的特点,java使用了一些特殊的操作和关键字来申明某些数据要特别注意。volatile就是其中之一。 当用volatile去声明一个变量的时候,就相当于告诉虚拟机,该变量很有可能被某些线程修改,确保该线程被修改后,相关线程都能清楚这一改动。但是volatile并不能代替锁,它不能保证一些复杂操作的原子性...
2019-02-26 16:41:17 126
原创 java高并发编程(二)——了解线程
java并行程序基础一、线程与线程的状态在学习java的过程中已经接触过很多有关线程的概念了,主要记录一下线程的机中状态,以及状态之间的切换。...
2019-02-22 17:22:34 263
原创 java高并发编程(一)——了解并发编程
记录学习并发编程过程中的的笔记和理解,有些实例出自自我总结和书本知识,有错误的地方希望前辈们指出。万分感谢。 ## **一、并发编程的几个重要概念** (1)“同步”(Synchronous)和“异步”(Asynchronous) “同步”方法的调用,调用者必须等到方法调用返回后才能继续后续的操作。‘’异步”方法调用之后立即返回,调用者可以继续后续的操作。两者的差别可以用生活中的实...
2019-02-21 17:13:15 206
原创 jdbc连接数据库报错问题
ssm项目中连接数据库报Public Key Retrieval is not allowed;网上解决答案:连接数据库的url中,加上allowPublicKeyRetrieval=true参数;亲测有效
2018-12-24 09:48:37 532
erlangForLinux_20.1.zip
2020-07-28
红黑树二叉查找树的具体实现
2019-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人