
Java
chiweitree
码农
-
原创 【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:241674
0
-
原创 【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:01344
0
-
原创 【JAVA】SpringCloud-Alibaba 结合 Nacos 实现配置动态刷新和服务注册发现
SpringCloud通常指的是Netflix的,今天我们讲的SpringCloud-Alibaba,有大厂背书,我选择相信,而且阿里巴巴的各项业务复杂度都在你我公司之上,所以经过大厂实战验证的可信度很高。目前SpringCloud-Alibaba提供的组件官网也有介绍,的确没有Netflix多,但是还在发展,没问题。其实大家用SpringCloud的核心目的就是转型微服务,做架构升级,而...2020-02-20 14:44:531346
0
-
原创 【JAVA】 SpringBoot2.X 核心注解原理分析及ApplicationContext应用上下文创建过程
约定大于配置百度百科约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。SpringBoot即是约定大于配置的充分体现,包括SpringCloud也是这样。启动main函数这是大家最常见的springboot的启动main函数写法。在这个启动...2020-02-19 17:24:00343
0
-
原创 【JAVA】springboot2中自定义配置如何获取使用
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。定义配置在springboot2中自定义配置都是通过注解@ConfigurationProperties来读取的,代码示例如下@Getter@Setter@Component@ConfigurationPr...2020-02-08 14:37:54411
0
-
原创 【JAVA】springboot2 中自定义多个线程池实现异步处理引入ThreadPoolExecutor的内部执行原理
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。springboot2中线程池的定义@Configurationpublic class ThreadPoolConfig { @Bean public Executor logExecutor() { ...2020-02-08 14:03:111494
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 r2013-02-06 15:10:31863
0
-
原创 java.util.concurrent解读,自定义线程工厂,线程池
自定义线程工厂package thread;import java.util.concurrent.ThreadFactory;import java.util.concurrent.atomic.AtomicInteger;public class MyThreadFactory implements ThreadFactory { private final Thread2012-11-27 14:25:551480
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: 1px2013-02-07 10:42:592450
0
-
原创 Observer -- 观察者模式
package observer;public interface Subject { void attach(Observer observer); void detach(Observer observer); void inform(); }package observer;public interface Observer { void u2012-11-27 16:57:13768
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;}}}}pub2012-10-25 16:54:08865
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:42561
0
-
原创 浅谈java中的四个核心概念
Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。现在介绍下java的四个核心概念:1.Java虚拟机Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和 API中装载class文件。Java API中只有程序执行时需要的那些类才会被装载。字节码由执2012-10-25 16:59:54551
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:524963
1
-
原创 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', '12013-04-18 09:17:171430
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:373027
3
-
原创 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 ti2012-10-30 15:46:01776
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 Ho2012-10-25 16:57:201361
0
-
转载 maven 常用命令
1. 创建Maven的普通java项目:mvn archetype:create-DgroupId=packageName-DartifactId=projectName 2. 创建Maven的Web项目: mvn archetype:create-DgroupId=packageName -DartifactId=webappName-DarchetypeArti2013-06-05 09:10:29958
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:141509
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的bi2013-07-02 14:23:041694
0
-
原创 字节流,字符流 有什么区别
字节输入输出流:InputStream,OutputStreamInputStream: 常用子类-->FileInputStream,BufferedInputStream输出流同理。字节流可以处理二进制文件,有AudioInputStream,ByteArrayInputStream但是对文本处理稍差字符输入输出流:Reader,WriterRead2013-08-05 16:19:19898
0
-
原创 JAVA 面试整理,面试汇总
1、JAVA是通过重写和重载来实现多态性的。重写:同样的方法签名,不同的方法实现重载:同样的方法名,不同的参数类型或参数个数2、JAVA中如果存在不再使用的对象,但是程序又持有该对象的引用,就会导致对象无法回收的情况,内存泄露。3、char类型变量可以存储一个汉字,因为JAVA中以UNICODE编码,一个char占16个bit位,即两个字节,所以存储一个汉字没有问题。4、Str2013-08-05 17:28:14810
0
-
原创 JAVA多线程中的锁机制
JAVA中的每个对象都可以用作一个实现同步的锁,这种称为内置锁,内置锁是可重入的,因此如果某个线程试图获取一个已经由它自己持有的锁,那么这个请求就会成功。重入的实现方法是,为每个锁关联一个获取计数值和一个所有者线程,当计数值为0,这个锁就是开放的,当线程请求该锁时,JVM将记下锁的持有者,并且将计数值+1,如果同一个线程再次回去该锁,计数值继续+1,通过计数值可以看出重入的次数,计数值为0,则2013-08-21 15:00:53793
0
-
原创 JAVA-JVM垃圾回收算法简介
1、引用计数法顾名思义,引用计数法就是对堆中的所有对象的引用进行计数,当这个计数为0时,表明该对象已经不被引用了,那么垃圾回收器则对其进行回收,每个对象都配备一个整型的计数器,负责记录该对象的引用次数,只要有任何一个对象引用了A对象,则A对象的计数器+1,当引用失效时,引用计数器-1,为0回收。但是这种情况,不能回收循环引用的情况,比如A对象引用了B对象,B对象引用了A对象,且堆中没有其它2012-11-23 07:07:35800
0
-
原创 一句话解释JVM中空间分配担保的问题
先解释YGC:当对象生成在EDEN区失败时,出发一次YGC,先扫描EDEN区中的存活对象,进入S0区,S0放不下的进入OLD区,再扫描S1区,若存活次数超过阀值则进入OLD区,其它进入S0区,然后S0和S1交换一次。那么当发生YGC时,JVM会首先检查老年代最大的可用连续空间是否大于新生代所有对象的总和,如果大于,那么这次YGC是安全的,如果不大于的话,JVM就需要判断Handle2013-08-22 16:24:235629
2
-
原创 JVM中内存回收深入分析,各种垃圾收集器解释分析
JVM启动有两种模式,client和server一般JVM启动时会根据主机情况分析选择采用那种模式启动可发现是server模式JVM中尤其需要关注的就是HEAP堆区堆区分为新生代和老年代新生代分为eden,s0,s1老年代就Old什么时候出发垃圾回收呢?当新对象在eden区分配失败时就会触发一次YGC,即新生代的垃圾回收,eden区中的存活对象进入s0,s0若放2013-08-22 15:11:491468
0
-
转载 JVM参数调整,经验分享,转载自撒迦
0、各参数的默认值 在讨论HotSpot VM的各参数的陷阱前,大家应该先了解HotSpot VM到底有哪些参数可以设置,这些参数的默认值都是什么。 有几种办法可以帮助大家获取参数的信息。首先为了大致了解都有些什么参数可以设置,可以参考HotSpot VM里的各个globals.hpp文件:(以下链接取自HotSpot 20.0,与JDK 6 update 25对应) globals.hpp gl2013-08-28 10:05:581797
0
-
原创 JAVA中常用设计模式 分析详解
单例模式,参见本人以前的文章:http://blog.csdn.net/simonchi/article/details/8136658工厂模式:定义一个用于创建对象的接口,工厂类就是一个抽象的接口,里面有很多方法,然后生产出来的产品就是一个一个具体的类,有具体的方法实现。实例1:package org.jzkangta.factorydemo01;2013-09-03 16:34:521223
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:061348
0
-
原创 JAVA内部类详解
JAVA的内部类分为4种成员内部类、局部内部类、静态内部类和匿名内部类。 1、成员内部类作为外部类的一个成员存在,是外部类的一个属性class Outer { public Inner getIn() { return new Inner(); } class Inner { }}成员内部类中不能定义静态变量static,可以访问外部类的所有成员,包括私2013-09-12 09:15:201076
0
-
原创 JAVA序列化在IO中读写对象的使用
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用Obj2013-09-12 14:10:161327
0
-
原创 JAVA的类加载器,详细解释
JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined class loader)。 一. ClassLoader基本概念1.ClassLoader分类类装载器是用来把类(class)装载进JVM的。JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined cl2013-09-18 15:55:17919
0
-
原创 JAVA实现字符串反转,借助字符数组实现
public static String reverseStr(String str) { int len = str.length(); char ch[] = str.toCharArray(); int begin = 0,end = len-1; char temp; while(begin<end) { temp = ch[begin]; ch[begin2013-09-18 14:30:461575
0
-
原创 抽象工厂模式、简单工厂模式、工厂模式的区别
工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类可以创建多个具体产品类的实例。 区别:工厂方法模式只有一个抽象产品类,而抽2013-09-23 13:59:461199
0
-
原创 找出数组中重复的元素,或者丢失的元素,前提,数组长度N,元素为1到N
package demo;public class ArrayRepetition { public static int array[] = {2,3,1,5,6,5}; public static int getMax(int c[]) { int len = c.length; int max = c[0]; for(int i=1;i<l2013-10-21 10:21:291024
0
-
原创 静态代理——再论
衣服工厂接口——方法,生产衣服衣服工厂接口实现类,类中方法实现生产耐克衣服代理类实现接口,类中声明上面类的实例,方法中调用上面类的实例的生产方法用户只和代理类打交道,不知道中间实现类的存在。2013-11-14 21:23:50792
0
-
原创 java反射机制reflect 分析Object对象
直接看一个实例吧package reflect;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;class Behavior { private long di2014-08-05 11:16:131317
0
-
原创 哈希小demo hashCode取模
package demo;import java.util.ArrayList;import java.util.List;class Person { private String username; private int age; public String getUsername() { return username; } public void setUsern2014-08-07 09:05:534179
0
-
原创 net spy memcached 使用demo
package memcached;import java.io.IOException;import java.net.InetSocketAddress;import net.spy.memcached.MemcachedClient;public class Client { private final int expiredSeconds = 100; private2014-08-22 09:36:386792
0