![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java知识
002睿智
代码千万行,注释第一行。格式不规范,报错两行泪!
展开
-
java泛型获取
public class TypeTest<N ,M> { public N testT(N name){ System.out.println("Name:" + name); Type[] actualTypeArguments = ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments(); return name;原创 2021-09-15 16:33:46 · 209 阅读 · 0 评论 -
钉钉jar包推送到私服
1、直接登录nexus2、通过在项目中导入,编译完成后在推送到私服在pom中指定jar包地址 <dependency> <groupId>com.dingtalk.open</groupId> <artifactId>taobao-sdk-java-auto</artifactId> <scope>system</scope> <version>1479188381469-2原创 2021-07-15 17:25:12 · 336 阅读 · 0 评论 -
OutOfMemoryError 的 Java heap space 与 GC overhead limit exceeded
OutOfMemoryError分为多种,其中就有 Java heap space 和 GC overhead limit exceededJava heap space的demopublic class Test { public static void main(String[] args) throws InterruptedException { String str = ""; while (true) { str += ...原创 2021-05-16 11:57:55 · 313 阅读 · 0 评论 -
JVM新生代Eden和survivor区别
jvm中的新生代Eden和survivor区别1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾出很大的空间出来。2.年轻代中的GC Hot...原创 2021-03-10 17:38:53 · 4695 阅读 · 0 评论 -
动态数据源配置druid+mybatis
一 、下这次我们先使用Mysql,本地现在有两个个数据库用于测试。本方案不限数据库数量完全动态配置,支持不同的数据库部署在不同的服务器上。(mybatis-plus没测试,下个版本用oracle配的时候尝试plus)如图 二、下一步我们看一下Druid继承关系我们可以看到想要配置DataSource其实非常简单,继承DruidDataSource就可以调用getConnection方法了三、下面直接开始上配置(简单的一个小例子其他的自己扩展吧)#连接池 使用阿里的dr.原创 2021-01-10 21:06:21 · 5107 阅读 · 10 评论 -
大数据时代,Java 统治地位危矣乎?
有云天下,有人江湖,编程的江湖亦是如此。编程的江湖上也是豪强诸起,门派众多,各足鼎立。虽说没有什么武林大会,也没有华山论剑,但是编程的江湖,也不比他们差,亦是精彩纷呈。在比较的老派和老牌的门派当中,C 门派最为受人尊敬,辈分较高,C++ 门派都属于 C 门派之列,后来由于其独有的气势和特点, C 门派中的 C 和 C++ ,都有一种华山门派剑宗和气宗的意思,但是毕竟同气连枝,在面对共同敌人的时候,还是师兄弟的关系。而 Java 门派其弟子更是众多,自诞生之初,尤其善于后端技术,以其精湛稳定的技术持续转载 2020-11-06 19:29:02 · 287 阅读 · 0 评论 -
Linux中永久启动项目java、vue等nohup使用安装配置教程
nohup使用安装配置教程nohup作用:使程序在服务器后台执行,执行程序的命令不依赖ssh界面。用法:nohup 需执行命令 &1、查询nohup是否安装(通常是都有的)which nohup--查看/usr/bin目录下有没有nohup命令2、下载nohupyum install coreutils3、查找下载的nohup进入/usr/bin目录下查看which ...原创 2020-03-23 13:57:34 · 1293 阅读 · 0 评论 -
centOs7安装Android Sdk详细教程
在开发vue时想将vue转换为apk安装包先卸载掉自带的jdk、推荐使用1.8的jdkcd /usr/local/src/mkdir sdkMywget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip unzip sdk-tools-linux-3859397.zip配置环境变量(根据自己...原创 2020-03-20 16:11:26 · 4429 阅读 · 2 评论 -
java发送QQ邮件实现注册验证功能
java发送QQ邮件实现注册验证功能这几天在做项目时,遇到登录注册的模块由于条件限制,没法使用手机验证方式,所以想到了qq邮箱的验证。在登录注册时使用邮箱进行验证登录下面开始代码先来pom <dependency > <groupId >com.sun.mail </groupId > <artifactId >jav...原创 2020-03-07 10:26:30 · 621 阅读 · 0 评论 -
PoI的基本实现
PoI的基本实现PoI与上传图片等逻辑相似 下面直接上后台代码pom文件<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version&g...原创 2020-03-04 14:20:08 · 713 阅读 · 1 评论 -
CentOs7安装dockers&拉取镜像MySQL国内下载
首先来安装dockers1、检测本地虚拟机的版本:大于3.10的即可2.移除旧版本[root@localhost /]# sudo yum remove docker3.安装必要的系统工具[root@localhost /]# sudo yum install -y yum-utils device-mapper-persistent-data lvm24.添加软件源信息[ro...原创 2020-03-01 00:57:34 · 1639 阅读 · 2 评论 -
MyBatis-Plus乐观锁
一、主要适用场景意图:当要更新一条记录的时候,希望这条记录没有被别人更新乐观锁实现方式:取出记录时,获取当前version更新时,带上这个version执行更新时, set version = newVersion where version = oldVersion如果version不对,就更新失败二、注解实体字段 @Version 必须要!@Versionprivate I...原创 2020-02-01 23:42:53 · 806 阅读 · 2 评论 -
java jpa分页排序条件查询工具类
mysql查询的手写工具类注:来源于@tianlihu讲师在jpa分页查询时需要使用在自定义方法或者给定方法在参数中加入Pageable即可分页,但是如果参数为空则会报错。为避免这种问题·····此篇文章涉及到,StringBuilder 、LinkedHashMap、instanceof、Sort、PageImpl、对象转map、获取泛型等java重点知识。含金量四颗星。import ...原创 2020-01-21 23:12:46 · 734 阅读 · 1 评论 -
java中事务什么是脏读、不可重复、虚读
什么是脏读、不可重复、虚读脏读 dirty reads:当事务读取还未被提交的数据时,就会发生这种事件。举例来说:张三 修改了一行数据,然后 李四 在 张三 还未提交修改操作之前读取了被修改的行。如果 张三 回滚了修改操作,那么 李四 读取的数据就可以看作是从未存在过的。不可重复的读 non-repeatable reads:当事务两次读取同一行数据,但每次得到的数据都不一样时,就会发...原创 2020-01-19 22:13:33 · 1109 阅读 · 0 评论 -
springboot连接池有dbcp,dbcp2, tomcat, hikari四种连接池
https://www.cnblogs.com/wzk-0000/p/9544432.html转载自这里!!!感谢大哥!本文使用的是springboot2.0(在配置数据源时和springboot1.X略有区别)首先:springboot默认支持的连接池有dbcp,dbcp2, tomcat, hikari四种连接池由于Tomcat数据源连接池的性能和并发,在tomcat可用时,我们总是优...转载 2020-01-19 17:25:47 · 5074 阅读 · 1 评论 -
Freemarker入门使用、讲解、案例
Freemarker为什么使用freemarker?使我们的代码更加的简洁,抒写修改更加的方便。在开发大型项目时代码太长一时找不到重点。使用Freemarker将多余的代码分散出去使用Freemarker首先要导入jar包<dependency><groupId>freemarker</groupId><artifactId>freema...原创 2020-01-18 15:11:44 · 280 阅读 · 0 评论 -
Freemarker入门讲解、详细分析、配置模板反向工程
使用Freemark先导包<dependency><groupId>freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.9</version></dependency>先来一个可以自动生成的类 publi...原创 2020-01-18 14:03:26 · 536 阅读 · 0 评论 -
java的单例模式、恶汉、懒汉
单例模式单例模式是java中最简单的设计模式之一,这种设计模式属于创建形的设计模式,他提供了一种创建对象的最佳模式。这中类模式设计到一个单一的类,该类负责自己创建自己的对象,同时确定只有一个对象。这个类提供了其唯一访问对象的方式,可以直接访问,不需要实例化该对象。特点:单例类只有一个实例。单例类必须自己创建自己的唯一实例(对外暴露一个实例化的方法)单例类必须给所有其他对象提供这一实例...原创 2020-01-16 22:03:12 · 498 阅读 · 0 评论 -
java反射案例,讲解分析
java反射1,反射:动态获取类的信息,以及动态调用对象的方法的属性、方法、接口、构造参数等。(可暴力破解类的私有信息)①在运行时判断任意一个对象所属的类;②在运行时构造任意一个类的对象;③在运行时判断任意一个类所具有的成员变量和方法;④在运行时调用任意一个对象的方法;⑤生成动态代理。java反射机制的功能强大随处可见,java.lang.reflect包中提供了对该功能的支持。...原创 2020-01-16 21:09:20 · 245 阅读 · 0 评论 -
网络通讯(TCP和UDP)和网络聊天室and传输文件
先展示一套简单的网络通信代码/* * 客户端建立思路: * 1.创建TCP客户端socket服务,使用的是socket对象 * 2.如果连接成功,说明数据传输通过建立 * 通过就是socket流,是底层建立好的 * 是流就应该由输入和输入。 * 想要获取输入或者输入流对象,可以找socket获取 * 可以通过getOutputStream()和getInpu...原创 2020-01-15 18:06:37 · 776 阅读 · 0 评论 -
线程同步以及 yield() wait()和notify()、notifyAll()
线程同步以及 yield() wait()和notify()、notifyAll()1、yield()该方法与sleep()类似,只是不能由用户指定暂停多长时间,并且yield()方法只能让同优先级的线程有执行的机会。2、wait()和notify()、notifyAll()这三个方法用于协调多个线程对共享数据的存取,所以必须在synchronized语句块内使用。synchronized...转载 2020-01-15 16:40:29 · 463 阅读 · 0 评论 -
Thread线程的join
java线程join的方法简单讲解1、作用Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行(也就是同时只执行一个)。具体看代码:public class JoinTest { public static void main(String [] args) throws InterruptedException { Thre...原创 2020-01-15 16:21:13 · 246 阅读 · 0 评论 -
java abstract抽象类的讲解使用
/*abstract:是一个修饰符可以修饰方法,类1.当我们多个类存在相同的功能,但是功能的主体不同,这时我们进行向上抽取只抽取功能的定义不抽取功能的主体抽象类的特点:1.抽象方法一定要在抽象类中2.抽象类和抽象方法必须要被abstract关键字修饰3.抽象的类是不能被创建对象,因为调用抽象的方法没意义4.抽象类中的方法要被使用,必须由子类重写抽象类中的方法然后创建子类对象来调...转载 2020-01-14 18:30:58 · 195 阅读 · 0 评论 -
装箱和拆箱
装箱和拆箱1、装箱和拆箱 装箱转换是指将一个值类型隐式地转换成一个object 类型,或者把这个值类型转换成一个被该值类型应用的接口类型interface-type。把一个值类型的值装箱,也就是创建一个object 实例并将这个值复制给这个object。比如:int i = 10;object obj = i; 装箱的过程我们也可以用显式的方...原创 2020-01-14 18:27:08 · 258 阅读 · 0 评论 -
@Modifying注解和@Transactional注解?
JPA中自定义的插入、更新、删除方法为什么要添加@Modifying注解和@Transactional注解? 前几天,有个同事在使用JPA的自定义SQL方法时,程序一直报异常,捣鼓了半天也没能解决,咨询我的时候,我看了一眼他的程序,差不多是这个样子的:1 @Repository2 public interface UserRepository extends JpaRepository&l...原创 2020-01-11 20:56:30 · 4494 阅读 · 3 评论 -
Spring 事务注解@Transactional
Spring 事务注解@Transactional事务管理一般有编程式和声明式两种,编程式是直接在代码中进行编写事物处理过程,而声名式则是通过注解方式或者是在xml文件中进行配置,相对编程式很方便。而注解方式通过@Transactional 是常见的。我们可以使用@EnableTransactionManagement 注解来启用事务管理功能,该注解可以加在启动类上或者单独加个配置类来处理。...原创 2020-01-11 20:27:05 · 391 阅读 · 1 评论 -
一对一关联查询注解@OneToOne的实例详解(一)
一对一关联查询注解@OneToOne的实例详解 表的关联查询比较复杂,应用的场景很多,本文根据自己的经验解释@OneToOne注解中的属性在项目中的应用。本打算一篇博客把增删改查写在一起,但是在改的时候遇到了一些问题,感觉挺有意思,所以写下第二篇专门讲修改。一、单向@OneToOne实例详解假设一个场景,一个人只能领养一只宠物,根据人能够找到宠物,并且查看宠物的信息,关系是单向的。创建人...原创 2020-01-11 10:12:43 · 1492 阅读 · 0 评论 -
JPA一对一映射@OneToOne等注解分析讲解(二)
双向一对一的实例我已经上传到GitHub,entrance项目上了,感兴趣的可以下载下来跑跑,这里讲两个在运行过程中遇到的问题。问题一:上一篇博客的最后我留下了问题。一对一关联查询注解@OneToOne的实例详解问题点:文章的最后,单向一对一程序在执行save语句的时候,分别执行了下面的语句:Hibernate: select person0_.id as id1_2_1_, person0...原创 2020-01-11 10:06:21 · 806 阅读 · 0 评论 -
vue上传下载图片
//这是第一种上传图片的方法 <el-form-item label="风景"> <el-upload class="upload-demo" action="http://localhost:9083/student/uploadPhoto" :headers="head...原创 2020-01-10 21:44:42 · 757 阅读 · 0 评论 -
基于Http协议设计网页应用优势与不足
好处:1 多路复用2 二进制分帧3 首部压缩4 服务推送1 介绍知乎上HTTP/2.0 相比1.0有哪些重大改进?中LeoZhang的回答不错可以看看。本文简单总结下。2 优点主要优点肯定就是性能提升大了。但是为什么性能提升大,其实主要还是由以下方面的改进带来的。2.1 多路复用.多路复用 (Multiplexing):多路复用允许同时通过单一的 HTTP/2 连接发起多重的请...原创 2020-01-10 21:07:17 · 388 阅读 · 0 评论 -
SVN的安装和简单使用
SVN的安装和简单使用1.下载官方下载地址:https://tortoisesvn.net/downloads.html根据自己电脑的型号选择32位或者64位的,选择自己想要下载的版本点击下载,然后在新弹出的页面中点击相应版本号的 .msi 下载即可。如何想要使用中文可以安装中文安装包,找到页面下方的Language packs 下方的Chinese,simplified,根据自己的需要选...原创 2020-01-09 10:34:10 · 176 阅读 · 0 评论 -
spring cloud config的主函数是ConfigServerApplication
spring cloud config的主函数是ConfigServerApplication,其定义如下:@Configuration@EnableAutoConfiguration@EnableConfigServerpublic class ConfigServerApplication {public static void main(String[] args) { n...原创 2020-01-09 10:32:55 · 317 阅读 · 0 评论 -
创建git仓库idea上传代码到giee
在setting/git中配置git.exe在GitHub中创建自己的用户密码初次提交代码到 Github需要 建立仓库选择一个Git的仓库地址点击import into Subversion…三步下去就可发上去了这里可以修改你提交的地址一般情况未提交的是红色...原创 2020-01-09 10:25:43 · 326 阅读 · 0 评论 -
Config从github和码云上读取文件
//代码是测试过的,不会有问题有报错可联系本人server 服务端的配置server.port=20000spring.application.name=config-server#配置配置中心相关#git仓库的地址spring.cloud.config.server.git.uri=https: 自己的github地址.git#配置用户名spring.cloud.confi...原创 2020-01-09 09:48:22 · 310 阅读 · 0 评论 -
SpringBean
SpringBean的注入问题Spring和bean的赋值取值spring是一个容器,里面可以装对象,可以赋值取值,也可以帮我们创建对象 告诉Spring何如创造一个对象,如何从Spring中取出对象 从spring容器中取出的对象,就不一定是浴室的对象, 而是被spring增强的对象Bean:是从spring容器中取出的对象叫做bean实体类的包名叫Bean,是...原创 2019-12-10 20:04:03 · 218 阅读 · 0 评论 -
mysql反向工程
强大的反向工程可以加大我们的工作效率,配置反向工程的时候千万注意**第一点** 需要配置自己的jar包驱动 的路径 <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包 --><classPathEntry location="D:\mysql-connector-java-5.1.26-bin.jar"/>**第二点** 配置自己的数据库账号密码...原创 2019-12-03 16:52:51 · 512 阅读 · 0 评论 -
深入分析讲解异或
深入分析异或的交换原理Java中的位运算符中有一个叫做异或的运算符,符号为(^)或者 Xor异或8个字总结 相同出0 不同出1int a=1;int b=1;System.out.println(a^b);这里则输出 0int a=12;int b=0;System.out.println(a^b);这里则输出 12小结: 相同的两个数会输出0既false ,另...原创 2019-11-25 10:14:35 · 1071 阅读 · 0 评论