Java
文章平均质量分 61
chiweitree
码农
展开
-
【JAVA】类文件具有错误的版本 61.0, 应为 52.0
类文件具有错误的版本 61.0, 应为 52.0;JDK版本依赖问题修复;原创 2022-09-01 11:22:03 · 76102 阅读 · 7 评论 -
【后端知识总结】常用的研发知识总结
常用研发知识总结原创 2022-07-05 19:30:37 · 550 阅读 · 0 评论 -
【布隆过滤器】布隆过滤器的原理
布隆过滤器原创 2022-06-06 19:30:03 · 362 阅读 · 0 评论 -
【XXL-JOB】 XXL-JOB 部署安装及使用
简介XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。选型框架对比(前人总结)feature quartz elastic-job-cloud xxl-job antares opencron 依赖 mysql jdk1.7+, zookeeper 3.4.6+ ,maven3....原创 2021-04-08 13:16:21 · 9271 阅读 · 0 评论 -
【feign】spring cloud feign声明式服务调用,springboot集成独立使用,不需要集成ribbon、hystrix、注册中心eureka等
背景项目整体容器化,服务注册发现依赖SVC,内部服务调用全部过通过service name调用,走http协议,所以为了内部模块间调用的代码简化,选择了feign声明式服务调用,对HTTP的调用解析非常便捷,具体参照如下两个工程:服务提供方https://github.com/cwtree/cube-feign-provider.git服务消费方https://github.com/cwtree/cube-feign-co...原创 2021-03-12 17:50:17 · 1024 阅读 · 1 评论 -
【mysql】springboot中使用 mybatis 实现乐观锁,支持并发更新,数据一致
【乐观锁】相对于悲观锁,在对数据库进行处理的时候,乐观锁并不会使用数据库提供的锁机制。一般的实现乐观锁的方式就是记录数据版本。乐观并发控制相信事务之间的数据竞争(data race)的概率是比较小的,因此尽可能直接做下去,直到提交的时候才去锁定,所以不会产生任何锁和死锁。一般是在数据表中加入一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version指会加一。当线程A要重新更新数据值时,在读取数据的时候也会读取version值,在提交更新时,若刚才读取到的vers.原创 2021-03-02 14:10:49 · 4763 阅读 · 3 评论 -
【framework】工程示例 通用工程脚手架初始化
比较通用的工程脚手架,用于初始化项目工程工程github地址:https://github.com/cwtree/cube-project.git包括的功能如下:1、参数校验2、swagger API3、package分层示例4、打包、脚本5、tk.mybatis集成6、统一manager层的缓存封装7、异步@Async8、线程池threadPool9、分布式锁shedlock redis10、轻量级定时任务等等希望大家一起fork,提交PR,一.原创 2021-02-20 17:11:37 · 377 阅读 · 0 评论 -
【架构】Apollo 配置中心 实践过程
技术选型本人并未对当前市场上所有的配置中心做过深度使用体验。结合前辈们总结的对比优缺点进行分析,同时使用过alibaba nacos和ctrip apollo,综合评估选型apolloapollo可以说是一套完整的配置治理的解决方案,不仅仅是这个简单的配置中心的作用;而nacos是配置中心和注册中心二合一的产品,其中配置中心的整个使用过程中缺乏治理的作用,比较简单粗暴。apollo有openAPI,跨语言支持,针对其它语言的客户端也可以按照标准API接入。安装部署..原创 2021-02-05 15:18:16 · 867 阅读 · 0 评论 -
【JAVA】SpringCloud Feign Ribbon Hystrix Nacos 第一次调用服务报错 close wrong [NA] failed to write cache for d
全部的报错信息如下[20-03-21 21:30:36:824][INFO ][org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]][http-nio-9277-exec-1]Initializing Spring DispatcherServlet 'dispatcherServlet'[20-03-2...原创 2020-03-21 23:29:24 · 5655 阅读 · 1 评论 -
【Thymeleaf】thymeleaf模板引擎发送邮件报错TemplateInputException: Error resolving template xxx
springboot2项目里结合thymeleaf模板引擎发送邮件,发现无法解析自定义的模板文件application中配置如下spring.thymeleaf.prefix=file:config/page这里只配置一个prefix,因为其它配置项默认配置都是对的,这里不需要配置了,可参考https://docs.spring.io/spring-boot/docs/2.2.4...原创 2020-02-29 13:49:01 · 813 阅读 · 0 评论 -
【JAVA】SpringCloud-Alibaba 结合 Nacos 实现配置动态刷新和服务注册发现
SpringCloud通常指的是Netflix的,今天我们讲的SpringCloud-Alibaba,有大厂背书,我选择相信,而且阿里巴巴的各项业务复杂度都在你我公司之上,所以经过大厂实战验证的可信度很高。目前SpringCloud-Alibaba提供的组件官网也有介绍,的确没有Netflix多,但是还在发展,没问题。其实大家用SpringCloud的核心目的就是转型微服务,做架构升级,而...原创 2020-02-20 14:44:53 · 3556 阅读 · 0 评论 -
【JAVA】 SpringBoot2.X 核心注解原理分析及ApplicationContext应用上下文创建过程
约定大于配置百度百科约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。SpringBoot即是约定大于配置的充分体现,包括SpringCloud也是这样。启动main函数这是大家最常见的springboot的启动main函数写法。在这个启动...原创 2020-02-19 17:24:00 · 892 阅读 · 0 评论 -
【JAVA】springboot2中自定义配置如何获取使用
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。定义配置在springboot2中自定义配置都是通过注解@ConfigurationProperties来读取的,代码示例如下@Getter@Setter@Component@ConfigurationPr...原创 2020-02-08 14:37:54 · 904 阅读 · 0 评论 -
【JAVA】springboot2 中自定义多个线程池实现异步处理引入ThreadPoolExecutor的内部执行原理
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。springboot2中线程池的定义@Configurationpublic class ThreadPoolConfig { @Bean public Executor logExecutor() { ...原创 2020-02-08 14:03:11 · 3522 阅读 · 4 评论 -
JAVA多线程并发同步,以及线程终止
import java.util.*;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;class Count { private int count = 0; //private Random r原创 2013-02-06 15:10:31 · 1048 阅读 · 0 评论 -
java.util.concurrent解读,自定义线程工厂,线程池
自定义线程工厂package thread;import java.util.concurrent.ThreadFactory;import java.util.concurrent.atomic.AtomicInteger;public class MyThreadFactory implements ThreadFactory { private final Thread原创 2012-11-27 14:25:55 · 1726 阅读 · 0 评论 -
JAVA中如何使用freemaker模版进行输出
首先你要有一个定义好的ftl文件,也就是最终输出的样式定义table { width: 800px; height: 400px; border: 2px solid black;}table thead tr td{ text-align: center; border-right: 1px solid #C1DAD7; border-bottom: 1px原创 2013-02-07 10:42:59 · 2698 阅读 · 0 评论 -
Observer -- 观察者模式
package observer;public interface Subject { void attach(Observer observer); void detach(Observer observer); void inform(); }package observer;public interface Observer { void u原创 2012-11-27 16:57:13 · 900 阅读 · 0 评论 -
Java 实现各种排序算法并测试排序效率
public static void bubbleSort(int a[]) {int len = a.length;for (int i = 0; i for (int j = 0; j if (a[j] > a[j + 1]) {int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}}pub原创 2012-10-25 16:54:08 · 1081 阅读 · 0 评论 -
JAVA简单的字节码介绍
Demo.java-----------------------public class Demo {public static int add(int a,int b) {return a+b;}public static void main(String[] args) throws Exception {add(3,2);}}原创 2012-10-25 16:56:42 · 667 阅读 · 0 评论 -
浅谈java中的四个核心概念
Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。现在介绍下java的四个核心概念:1.Java虚拟机Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和 API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执原创 2012-10-25 16:59:54 · 611 阅读 · 0 评论 -
JAVA实现 输入一串数字,转换成汉字显示
package algo;import java.util.Scanner;public class NumTrans { private static Scanner sc ; private static String input; private static String units[] = {"","十","百","千","万","十","百","千","亿"};原创 2012-10-31 16:43:52 · 5720 阅读 · 2 评论 -
JAVA实现MD5加密算法,可以通用
import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class MD5Encryption {public static String getMD5(String source) {String s = null;char hexChar[] = { '0', '1原创 2013-04-18 09:17:17 · 1662 阅读 · 0 评论 -
JAVA多线程中,原子操作的概念——原子操作真的不需要进行同步控制吗?
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;class Sd implements Runnable { private int a = 1; public int getA() { return a; } private synchronized ...原创 2013-02-04 14:44:37 · 3406 阅读 · 4 评论 -
JAVA TIMER 时间调度程序
package cn.edu.ustc;import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class Clock { public static void main(String[] args) { Timer ti原创 2012-10-30 15:46:01 · 863 阅读 · 0 评论 -
hosts 文件添加器 图形化添加ip和域名对应
文件添加器 图形化添加ip和域名对应" title="hosts 文件添加器 图形化添加ip和域名对应" style="margin:0px; padding:0px; border:0px; list-style:none">Hosts.java-------------------------package cn.edu.ustc;public class Ho原创 2012-10-25 16:57:20 · 1634 阅读 · 0 评论 -
maven 常用命令
1. 创建Maven的普通java项目:mvn archetype:create-DgroupId=packageName-DartifactId=projectName 2. 创建Maven的Web项目: mvn archetype:create-DgroupId=packageName -DartifactId=webappName-DarchetypeArti转载 2013-06-05 09:10:29 · 1048 阅读 · 0 评论 -
spring3与 quartz job 任务调度的整合
最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现。对于一个新手来说,花了我不少时间,这里我写个笔记,给大家参考。 我使用的是Maven来管理项目,需要的Jar包我给大家贴出来。 quartz-1.8.5.jar commons-logging.jar spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.转载 2013-07-11 13:29:14 · 1977 阅读 · 0 评论 -
ECLIPSE中反编译插件JAD的配置安装,轻松查看JAVA源代码
第一步:下载jad的eclipse插件jar包http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download第二步:将此jar包复制到你的eclipse的plugin文件夹下第三步:下载jad http://varaneckas.com/jad/将下载后的jad.exe程序复制到JDK的bi原创 2013-07-02 14:23:04 · 1898 阅读 · 0 评论 -
字节流,字符流 有什么区别
字节输入输出流:InputStream,OutputStreamInputStream: 常用子类-->FileInputStream,BufferedInputStream输出流同理。字节流可以处理二进制文件,有AudioInputStream,ByteArrayInputStream但是对文本处理稍差字符输入输出流:Reader,WriterRead原创 2013-08-05 16:19:19 · 1093 阅读 · 0 评论 -
JAVA 面试整理,面试汇总
1、JAVA是通过重写和重载来实现多态性的。重写:同样的方法签名,不同的方法实现重载:同样的方法名,不同的参数类型或参数个数2、JAVA中如果存在不再使用的对象,但是程序又持有该对象的引用,就会导致对象无法回收的情况,内存泄露。3、char类型变量可以存储一个汉字,因为JAVA中以UNICODE编码,一个char占16个bit位,即两个字节,所以存储一个汉字没有问题。4、Str原创 2013-08-05 17:28:14 · 923 阅读 · 0 评论 -
JAVA多线程中的锁机制
JAVA中的每个对象都可以用作一个实现同步的锁,这种称为内置锁,内置锁是可重入的,因此如果某个线程试图获取一个已经由它自己持有的锁,那么这个请求就会成功。重入的实现方法是,为每个锁关联一个获取计数值和一个所有者线程,当计数值为0,这个锁就是开放的,当线程请求该锁时,JVM将记下锁的持有者,并且将计数值+1,如果同一个线程再次回去该锁,计数值继续+1,通过计数值可以看出重入的次数,计数值为0,则原创 2013-08-21 15:00:53 · 988 阅读 · 0 评论 -
JAVA-JVM垃圾回收算法简介
1、引用计数法顾名思义,引用计数法就是对堆中的所有对象的引用进行计数,当这个计数为0时,表明该对象已经不被引用了,那么垃圾回收器则对其进行回收,每个对象都配备一个整型的计数器,负责记录该对象的引用次数,只要有任何一个对象引用了A对象,则A对象的计数器+1,当引用失效时,引用计数器-1,为0回收。但是这种情况,不能回收循环引用的情况,比如A对象引用了B对象,B对象引用了A对象,且堆中没有其它原创 2012-11-23 07:07:35 · 945 阅读 · 0 评论 -
一句话解释JVM中空间分配担保的问题
先解释YGC:当对象生成在EDEN区失败时,出发一次YGC,先扫描EDEN区中的存活对象,进入S0区,S0放不下的进入OLD区,再扫描S1区,若存活次数超过阀值则进入OLD区,其它进入S0区,然后S0和S1交换一次。那么当发生YGC时,JVM会首先检查老年代最大的可用连续空间是否大于新生代所有对象的总和,如果大于,那么这次YGC是安全的,如果不大于的话,JVM就需要判断Handle原创 2013-08-22 16:24:23 · 6032 阅读 · 4 评论 -
JVM中内存回收深入分析,各种垃圾收集器解释分析
JVM启动有两种模式,client和server一般JVM启动时会根据主机情况分析选择采用那种模式启动可发现是server模式JVM中尤其需要关注的就是HEAP堆区堆区分为新生代和老年代新生代分为eden,s0,s1老年代就Old什么时候出发垃圾回收呢?当新对象在eden区分配失败时就会触发一次YGC,即新生代的垃圾回收,eden区中的存活对象进入s0,s0若放原创 2013-08-22 15:11:49 · 1612 阅读 · 0 评论 -
JVM参数调整,经验分享,转载自撒迦
0、各参数的默认值 在讨论HotSpot VM的各参数的陷阱前,大家应该先了解HotSpot VM到底有哪些参数可以设置,这些参数的默认值都是什么。 有几种办法可以帮助大家获取参数的信息。首先为了大致了解都有些什么参数可以设置,可以参考HotSpot VM里的各个globals.hpp文件:(以下链接取自HotSpot 20.0,与JDK 6 update 25对应) globals.hpp gl转载 2013-08-28 10:05:58 · 2130 阅读 · 0 评论 -
JAVA中常用设计模式 分析详解
单例模式,参见本人以前的文章:http://blog.csdn.net/simonchi/article/details/8136658工厂模式:定义一个用于创建对象的接口,工厂类就是一个抽象的接口,里面有很多方法,然后生产出来的产品就是一个一个具体的类,有具体的方法实现。实例1:package org.jzkangta.factorydemo01;原创 2013-09-03 16:34:52 · 1352 阅读 · 0 评论 -
Java中String和new String的区别,比较
Java运行环境有一个字符串池,由String类维护。执行语句String str="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给str,如果不存在则先在字符串池中新建一个字符串"abc",然后再将其赋给str。执行语句String str=new String("abc")时,不管字符串池中是否存在字符串"abc",直接新建一个字符串"abc"(注意原创 2012-10-25 08:52:06 · 1689 阅读 · 0 评论 -
JAVA内部类详解
JAVA的内部类分为4种成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类作为外部类的一个成员存在,是外部类的一个属性class Outer { public Inner getIn() { return new Inner(); } class Inner { }}成员内部类中不能定义静态变量static,可以访问外部类的所有成员,包括私原创 2013-09-12 09:15:20 · 1159 阅读 · 0 评论 -
JAVA序列化在IO中读写对象的使用
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用Obj原创 2013-09-12 14:10:16 · 1445 阅读 · 0 评论