Java开发语言
文章平均质量分 55
Java基本技术
大佛拈花
你现在的气质里,藏着你走过的路,读过的书和爱过的人
展开
-
gradle配置国内镜像
使用阿里云国内镜像对单个项目生效,在项目中的build.gradle修改内容buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven{ url 'http://maven.aliyun...原创 2020-04-01 13:55:47 · 1277 阅读 · 0 评论 -
一次java面试
前几天去了一家电商公司去面试,感触颇多。在这里复盘下这次面试经历吧!一面1 做个自我介绍吧:我:balabala......2 你了解线程池吗? 对于线程池,可以使用Executor的方式去创建,也可以使用ThreadPoolExecutor直接自定义去创建,但是推荐后者,这样可以更加清楚的明白线程池中每一个参数的含义。下面的代码是Threa...原创 2018-11-22 17:42:44 · 201 阅读 · 1 评论 -
关于线程池中的阻塞队列BlockingQueue
接上篇文章https://blog.csdn.net/GoSaint/article/details/84345210 对于BlockingQueue阻塞队列而言,常用在多线程生产者和消费者模型上。首先我们需要明确的是阻塞队列是线程安全的。或者可以称之为并发队列,是并发容器的一种规范。 上图是BlockingQueue的实现类...原创 2018-11-27 16:23:41 · 476 阅读 · 0 评论 -
一 线程基础
文章目录一、并行和并发二、进程和线程1.进程1.1 进程概念1.2 API操作2.线程2.1 线程概念2.2 线程调度2.3 多线程优势三、创建线程1.继承Thread2.实现Runnable3.匿名内部类四、Runnable和Thread的区别一、并行和并发并行:是指并排行走或者同时实施。是指两个或者多个事件同时发生。并发:同时发生,可是和并行不一样的是在宏观层面上来看是同时发生,微观上其实还是交替执行。是指两个或者多个事件在同一事件片区执行。宏观上看起来同时执行。并发是两个队列交替使用一台咖原创 2021-03-24 19:07:27 · 14465 阅读 · 0 评论 -
二 多线程消费者和生产者模型
线程消费者和生产者模型概述:生产者和消费者模型是多线程中的经典模型。在这里我想详细的介绍下关于该模型实现的多种方式。生产者:数据产生的源头。消费者:数据流向的结点。对于该模型,感觉好熟悉。如RPC框架Dubbo就是有生产者和消费者之说,也就是服务提供者和服务消费者接口。对于消息队列也是如此。但是比如Dubbo来说,服务消费者接口是通过注册中心去调用服务的生产者的。而不是直接根据地址调用。...原创 2019-01-14 21:57:52 · 255 阅读 · 0 评论 -
BlockingQueue(阻塞队列)详解
注意:该随笔内容完全引自http://wsmajunfeng.iteye.com/blog/1629354,写的很好,非常感谢,复制过来算是个积累,怕以后找不到。一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍...原创 2018-11-01 11:05:11 · 346 阅读 · 0 评论 -
BlockingQueue(阻塞队列)详解
注意:该随笔内容完全引自http://wsmajunfeng.iteye.com/blog/1629354,写的很好,非常感谢,复制过来算是个积累,怕以后找不到。一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文...原创 2018-11-26 16:45:50 · 583 阅读 · 0 评论 -
海量订单产生的业务高峰期,如何避免消息的重复消费
文章目录幂等含义一、由来背景二、乐观锁方案幂等含义我们先了解一下什么叫幂等?在分布式应用中,幂等是非常重要的,也就是相同条件下对一个业务的操作,不管操作多少次,结果都是一样。提示:以下是本篇文章正文内容,下面案例可供参考一、由来背景为什么要有幂等这种场景?因为在大的系统中,都是分布式部署,如:订单业务 和 库存业务有可能都是独立部署的,都是单独的服务。用户下订单,会调用到订单服务和库存服务因为分布式部署,很有可能在调用库存服务时,因为网络等原因,订单服务调用失败,但其实库存服务已经处理完成原创 2021-06-26 16:04:45 · 219 阅读 · 0 评论 -
git新分支替换master分支步骤
需求现在远程仓库和本地仓库分支同步,分别有master和develop两个分支,需求是master很古旧了,需要使用新的develop替换master步骤如下对master备份(GitHub支持备份)进入setting设置develop为默认仓库本地操作删除远程master分支:git push origin -d master本地仓库删除master分支:git branch --delete master本地创建新的master分支,并拉取远程develop分支最新内容git原创 2020-09-16 17:29:25 · 931 阅读 · 0 评论 -
news_flash新闻快讯项目 Chapter 2
在上一章中做了新闻的最基本的CRUD以及环境的基本搭建和配置,本章我们集成页面以及添加高级查询和分页、以及图片上传等基本的技术来继续进行该项目。1 页面整合 1)拷贝静态资源 2)修改样式、图片等的路径 3)首先我们观察index.html文件,发现它使用了frameset框架集,大家可以看看下面的主要内容,分析跳转的过程: system表示s原创 2017-10-07 13:45:34 · 3864 阅读 · 1 评论 -
在MobaXterm中使用ssh key进行登录
原创 2020-05-09 10:41:22 · 10211 阅读 · 1 评论 -
快递100 物流公司编码
中通快递 zhongtong 国内运输商 韵达快递 yunda 国内运输商 圆通速递 yuantong 国内运输商 百世快递 huitongkuaidi 国内运输商 申通快递 shentong 国内运输商 邮政快递包裹 youzhengguonei 国际邮政 顺丰速运 shunfeng 国际运输商 京东物流 jd 国内运输商 天天快递 tiantian 国内运输商原创 2020-05-12 11:49:35 · 2639 阅读 · 0 评论 -
news_flash新闻快讯项目 Chapter 1
1 项目搭建以及环境配置本项目是一个简单的新闻资讯的发布管理系统,新闻工作人员可以添加新闻,删除,修改新闻。也可以编辑发布新闻。1.1 新建news_flash项目(web项目结构)maven配置,下图是项目的整体结构。1.2 领域对象的建立domainpackage cn.czg.core.dao;import java.io.Serializable;import原创 2017-10-06 13:41:05 · 2718 阅读 · 1 评论 -
SpringBoot项目(Spring security)获取登录用户用户名
String username=SecurityContextHolder.getContext().getAuthentication().getName();AuthUser user=userRepository.findFirstByUserName(username);SecurityContextHolder ==>从ThreadLocal中获取用户ThreadLoc...原创 2020-04-29 09:45:37 · 5201 阅读 · 4 评论 -
本地jar导入本地maven仓库
mvn install:install-file -Dfile=jar的位置 -DgroupId=xxx -DartifactId=xxx -Dversion=1.0-SNAPSHOT -Dpackaging=jar原创 2020-05-06 11:43:33 · 151 阅读 · 0 评论 -
Java单向链表的实现
package com.gosaint.collection;/** * @Author: gosaint * @Description: * @Date Created in 21:25 2021/2/20 * @Modified By: */public class TsLinked<E> { /** * 指针指向第一个结点。 */ private Node<E> first; /** * 链表的长度 .原创 2021-02-21 00:23:05 · 103 阅读 · 0 评论 -
一致性hash算法
一致性hash算法是在分布式环境下通过对服务器节点做hash运算,从而对数据做合理分片的一种算法。以0为起点,232-1作为终点,形成一个闭合的圆。对服务器做hash运算,然后对232-1去摸。从而使节点均匀的分布在闭合圆上。面对节点的增加或者删除,只会影响部分数据,可以避免类似于redis的缓存雪崩出现。但是节点不均匀的时候也会出现hash倾斜。通过多次计算节点的hash,增加虚拟节点的方式使...原创 2020-03-30 20:05:49 · 199 阅读 · 0 评论 -
两道散列算法题
一 不同散列的计算给定数据{4371,1323,6173,4199,4344,9679,1989}和散列函数h,给出下列结果分离链接散列表 使用线性探测散列表 使用平方探测散列表 将上述中的散列表再散列解答:使用链接散列表。这个是使用链表解决冲突。表的长度为10. 可以看出链表法总共有三次冲突。 线性探测:4371%10=1,没有冲突;1323%10=3,没有冲突;617...原创 2020-04-03 16:13:44 · 3548 阅读 · 0 评论 -
java数据结构读书笔记--引论
1 递归简论需求:求出f(x)=2f(x-1)+x²的值。满足f(0)=02 Java泛型原创 2017-11-30 23:35:14 · 293 阅读 · 0 评论 -
java对单向单向链表的操作
概述:众所周知,数据对于数据的存储时连续的,也就是说在计算机的内存中是一个整体的、连续的、不间断的ADT数据结构。伴随的问题也会随之出现,这样其实对于内存的动态分配是不灵活的。而链表具备这个优点。因此链表对于数据的插入和删除是方便的,但是对于数据的查询是麻烦的。因为需要遍历链表,而对于链表的遍历确实极度的麻烦。1 单向链表的定义链表主要用来存储引用类型的数据。其结构可以由下图清楚的表示: 链表原创 2017-12-07 18:18:46 · 543 阅读 · 0 评论 -
漫画算法:什么是红黑树?
来源:伯乐专栏作者/玻璃猫,微信公众号 - 程序员小灰好文投稿, 请点击 → 这里了解详情————————————二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是...转载 2019-02-28 10:07:54 · 17731 阅读 · 0 评论 -
ASM模拟AOP(计算方法执行时间)
ASM模拟AOPmaven依赖目标实现逻辑实现ClassVisitor和MethodVisitor增强输出class测试ASM是一个通用的Java字节码操作和分析框架。它可以直接以二进制形式用于修改现有类或动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以从中构建定制的复杂转换和代码分析工具。maven依赖 <dependency> <groupId>org.ow2.asm</groupId>原创 2021-04-01 18:46:26 · 282 阅读 · 0 评论 -
长生命周期对象持有短生命周期对象的引用有可能发生内存泄漏(老年代引用新生代)
具体类别1、静态集合类引起内存泄漏public class Test01 { static Vector v = new Vector(10); public static void main(String[] args) { for (int i = 0; i < 100; i++) { Object obj = new Object(); v.add(obj); obj = nul...原创 2021-04-01 16:21:44 · 1318 阅读 · 0 评论 -
jvm堆内存溢出后,其他线程是否可继续工作
最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。 由于题目中给出的OOM,java中OOM又分很多类型;比如:堆溢出(“java.lang.OutOfMemoryError: Java heap space”)、永久带溢出(“java....原创 2018-11-07 14:54:59 · 1683 阅读 · 0 评论 -
JVM学习之1 GC日志理解
为了观察GC日志,我们需要设置JVM启动参数: -XX:+PrintGCDetails-----------------------------表示详细的GC日志的输出下面程序代码是我摘抄《深入理解JVM》这个本书上的一个示例;public class RefrenceCountingGC { public Object instance =null; ...原创 2018-11-02 16:33:46 · 380 阅读 · 0 评论 -
jvm内存溢出问题的定位方法
今天给大家带来JVM体验之内存溢出问题的定位方法。废话不多说直接开始:一、Java堆溢出测试代码如下:package com.gosaint.ms;import java.util.HashMap;import java.util.Map;import java.util.Vector;public class MemoryError { static Vec...原创 2020-04-22 17:22:57 · 394 阅读 · 0 评论 -
JVM之垃圾收集算法
JVM之垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法标记-清除算法标记清除算法主要分为两个阶段,标记阶段和清除阶段,这两个阶段效率比较低,而且收集之后会产生内存碎片,无法为大的对象分配内存空间。如下图:复制算法复制算法解决了内存碎片问题,但是随之而来的却是把内存一分为二。原理是:内存一分为二,每次使用其中的一半,当需要回收的时候,讲死亡对象清理,然后存活对象移动到另外一边...原创 2019-05-11 22:53:44 · 168 阅读 · 0 评论 -
工厂模式和抽象工厂模式
1工厂模式关于工厂模式可以参考我的一篇博文https://blog.csdn.net/GoSaint/article/details/100118814。工厂模式其实应该叫做工厂方法模式。指的是用工厂方法来创建对象。而不是使用构造器!该工厂类根据提供的输入返回不同的子类,并且工厂类使用if-else或switch语句来实现此目的!一般普遍的实现方式要点如下:1创建接口2...原创 2020-04-06 21:31:22 · 993 阅读 · 0 评论 -
接口型模式之适配器设计模式
接口型模式分为4种:适配器模式、外观模式、合成模式、桥接模式。今天我在这里分享下适配器模式。概念:将类的接口转换为客户期望的另一个接口。Adapter使类可以协同工作,否则由于接口不兼容而无法实现。简而言之,适配器模式使您可以将其他不兼容的对象包装在适配器中,以使其与另一个类兼容。Target(目标抽象类...原创 2020-04-07 21:26:45 · 910 阅读 · 0 评论 -
设计模式 之 Build(构建)模式
构建模式主要在建立复杂的javabean时,因字段或者属性太多,会出现大量的构造器而出现。要么使用无参数的构造器创建对象,使用setter设置属性,要么过程中直接使用不同的构造器。build模式可以解决上述两个问题。下面的demopackage com.sensenets.reptile.domain;/** * @author caozg * @Created by 201...原创 2019-11-25 11:27:56 · 835 阅读 · 0 评论 -
单例模式的多种写法
1饿汉模式顾名思义,就是比较饥饿。立马创建对象,没有延迟加载。public class HungrySingle { private static HungrySingle instance; private HungrySingle() {} static { instance=new HungrySingle(); } public static ...原创 2020-04-06 21:53:21 · 997 阅读 · 0 评论 -
Lock wait timeout exceeded; try restarting transaction
该错误是一个事务没有提交,而另一个事务开始。在循环插入或者更新数据的时候,使用多线程,但是没有保证线程安全的情况下回出现该问题。<update id="updateByFileOcsIdSn"> update file_ocs_info SET assessment_sn=#{assessmentSn} where file_ocs_id=#{fileOcsId}</update>if (selfEvaluationApplicationFiles != nul原创 2021-01-19 18:31:28 · 216 阅读 · 0 评论 -
found [date (Types#DATE)], but expecting [timestamp (Types#TIMESTAMP)]
在对应的列上加注解可以解决 @Column(name = "hiredate", columnDefinition = "DATE") private Timestamp hiredate;原创 2021-09-16 16:46:30 · 395 阅读 · 0 评论 -
Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
项目报错如下:Caused by: org.hibernate.AnnotationException: No identifier specified for entity:原因是没有加@Id注解,但是我发现我的字段上是加了的。最后发现引入的包不对。错误的包:import org.springframework.data.annotation.Id;正确的包:impo...原创 2019-10-10 14:50:43 · 213 阅读 · 0 评论 -
Redis异常 Unknown redis exception; nested exception is java.lang.NullPointerException
redis异常信息如下:org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.lang.NullPointerException at org.springframework.data.redis.FallbackExceptionTr...原创 2018-11-18 21:31:52 · 23661 阅读 · 2 评论 -
redis常见异常
使用redis也有端时间了,现在讲开发中遇到的几个常见异常总结如下:一、通过JedisPool类实例获取getResource()时抛出can't get a resource异常。异常代码如下:redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool...原创 2020-04-14 13:48:40 · 1826 阅读 · 0 评论 -
Oracle连接:ORA-28001 the password has expired
Oracle连接出现的异常: 原因是密码过期。此时我们应该登陆oracle.以DBA的身份登陆。打开cmd。然后输入:sqlplus / as sysdba;之后查看密码时间:select * from dba_profiles where profile='DEFAULT' and resource_nam...原创 2019-01-15 16:01:44 · 457 阅读 · 0 评论 -
zookeeper启动:文件名、目录名或卷标语法不正确
解决:把Server.cmd中的%JAVA%修改为Java原创 2021-06-10 15:32:39 · 17570 阅读 · 3 评论 -
Required Express100Req parameter ‘req‘ is not present
Required Express100Req parameter 'req' is not present错误原因:当controller中方法参数是对象时不能使用了@RequestParam注解解决:在方法参数是对象时不能使用@RequestParam注解...原创 2020-05-08 09:32:29 · 14798 阅读 · 0 评论 -
# Creating Server TCP listening socket *:6379: bind: No error
解决redis启动报错:1. redis-cli.exe2. shutdown3. exit4. redis-server.exe redis.windows.conf原创 2020-05-09 09:21:51 · 922 阅读 · 0 评论