
java
文章平均质量分 92
不要回头看
好好码代码 好好写博客 该是你的总会来 不该是你的终不会来
展开
-
Java非静态内部类
Java非静态内部类在java中内部类主要分为成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类接下来我要说的是以下这种内部类,非静态内部类。首先了解非静态内部类的定义。非静态内部类:1.非静态内部类必须寄存在一个外部类对象里。因此,如果有一个非静态内部类对象那么一定存在对应的外部类对象。非静态内部类对象单独属于外部类的某个对象2.非静态内部类可以直接访问外部类的成员,但是外部类不能直接访问非静态内部类成员3.非静态内部类不能有静态方法、静态属性、静态初始化块4.外部类的静态转载 2020-11-26 11:15:22 · 412 阅读 · 0 评论 -
FileOutputStream 和 FileInputStream
import java.io.*; public class fileStreamTest2 { public static void main(String[] args) throws IOException { File f = new File("a.txt"); FileOutputStream fop = new FileOutputStream(f); // 构建FileOutputStream对象,文件不存在会自动新建 .转载 2020-10-17 17:50:22 · 249 阅读 · 0 评论 -
JAVA学习脚印10:解惑java 中UTF-16与char
JAVA学习脚印10:解惑java 中UTF-16与charjava中的char、utf-16编码、代码点、代码单元等概念,做一个了解还是有必要的。1.基本概念1) Java的字符类型和字符串类型字符类型采用的是UTF-16编码方式对Unicode编码表进行表示。其中一个char类型固定2字节,为无符号数,表示范围为'\u0000'(0)~'\uffff'(65,535)。java中的String定义如下:public final class String imple...转载 2020-10-15 20:18:01 · 406 阅读 · 0 评论 -
openzipkin/brave初步了解
一、brave是什么? github链接:https://github.com/openzipkin/brave/tree/master/instrumentation brave是zipkin提供的链路跟踪的组件,支持服务间的各种调用的路径跟踪,支持htttp的同步异步调用跟踪,dubbo,kafka、rabbit等消息的链路跟踪: 二、HTTP、kafka的链路跟踪的实现原理 都是通过请求头或消息头的方式,...原创 2020-09-24 09:42:47 · 523 阅读 · 0 评论 -
类加载机制
一.类生命周期1.加载 读取二进制内容2.验证 验证class文件格式规范、语义分析、引用验证、字节码验证3.准备 分配内存、设置类static修饰的变量初始值4、解析 类、接口、字段、类方法解析5、初始化 为静态变量赋值;执行静态代码块6、使用 创建实例对象7、卸载二、类加载器1.Boostrap loader C/C++实现,无对应的java类:null。加载JRE_H...原创 2020-09-19 17:49:05 · 203 阅读 · 0 评论 -
JVM常用内存参数配置
一、 常用参数 -Xms JVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX:MaxHeapFreeRation=来指定这个比列。Server端JVM最好将-Xms和-Xmx设为相同值,避免每次垃圾回收完成后JVM重新分配内存;开发测试机JVM可以保留默认值。(例如:-Xms4g) -Xmx JVM可申请的最大Heap值,默认值为物理内存的1/4但小于1G,...转载 2020-09-19 10:34:03 · 950 阅读 · 0 评论 -
java的常量池在堆中
public class StringPoolTest { public static void main(String[] args) { String str = "abc"; char[] arrays = {'a', 'b', 'c'}; String str2 = new String(arrays); str2 = str2.intern(); S...原创 2020-09-17 19:52:01 · 492 阅读 · 1 评论 -
Ubuntu 修改系统时区(note:date显示的时间是正常的,也可能需要重新设置时区,尤其是当日志时间差了12个小时)
buntu linaro(Lubuntu) 修改系统时区 (Cubieboard CC-A80修改系统时区)dpkg-reconfigure tzdata原创 2020-07-22 17:06:47 · 626 阅读 · 0 评论 -
Java8获取参数名称
Java8获取参数名称前言在mybatis的源码学习中,知道了mybatis可以开始在Java8将参数名称作为映射名称,Java8一项新的特性——在class文件中保留参数名。通过反射获取参数名称Java8中反射包出现了新的方法,Method.getParameters(),可以获取Parameter数组。而以前只能使用Method.getParameterTypes()获取Class数组。import java.lang.reflect.Method;import java.lan转载 2020-07-09 16:01:06 · 1007 阅读 · 0 评论 -
List ? super T和List ? extends T之间有什么区别
List<? extends T>和List<? super T>之间有什么区别?List<? extends T>表示类型的上界为T,即参数化的类型可能是T也可能是T的子类。<? extends T>被设计用来读数据的泛型,只能读取类型为T的元素。List<? super T>表示类型的下界为T,即参数化的类型可能是T也可能是T的父类型。<? super T>被设计用来写数据的泛型,只能写入T或T的子类型,不能用来读。...转载 2020-06-28 16:40:16 · 1002 阅读 · 0 评论 -
为什么“super”关键字在泛型使用时不允许在类级别使用
如下的代码编译不通过ConstructorTest<T super CharSequence>在stackoverflow上的讨论:https://stackoverflow.com/questions/37411256/why-super-keyword-in-generics-is-not-allowed-at-class-level满意的回答是: 类型擦除后变为<Object>,Object又是所有类型的父类型,所有类型就都可以作为T,是没有意义...原创 2020-06-28 16:08:15 · 960 阅读 · 0 评论 -
java泛型中“”?“”和“”T“”有什么区别
T代表一种类型加在类上:class SuperClass<A>{}加在方法上:public<T>voidfromArrayToCollection(T[]a, Collection<T>c){}方法上的<T>代表括号里面要用到泛型参数,若类中传了泛型,此处可以不传,调用类型上面的泛型参数,前提是方法中使用的泛型与类中传来的泛型一致。class People<T>{publicvoidshow(Ta) {...转载 2020-06-28 14:59:31 · 617 阅读 · 0 评论 -
Springboot项目的war包与jar包的目录结构分析
Spring Boot项目可以制作成jar包和war包,其目录结构是不一样的,具体的如下所示:1、war包目录结构分析WAR(Web Archivefile)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。WAR包标准目录结构:说明:1、index.jsp[可选]2、METAINF[MAVEN自动生成目录]3、WEB-INF[必含]①...转载 2020-03-16 15:22:53 · 1407 阅读 · 0 评论 -
java 简单实现线程池
先上原理图:为了更好的在手机上显示,我重新把图画了一遍上代码之前,要先补充一下线程池构造的核心几个点线程池里的核心线程数与最大线程数线程池里真正工作的线程worker线程池里用来存取任务的队列BlockingQueue线程中的任务task本例实现简化了一些,只实现了BlockingQueue存放任务,然后每个worker取任务并执行,下面看代码首先定义一个线程池ThreadExcutorclass...转载 2018-06-29 10:27:38 · 169 阅读 · 0 评论 -
Jackson使用指南
Jackson包含一个core JAR,和两个依赖core JAR的JAR:Jackson CoreJackson AnnotationsJackson Databind其中Jackson Annotations依赖Jackson Core,Jackson Databind依赖Jackson Annotations。这三个JAR可以从Maven中央仓库下载,然后放在CLASSP...原创 2019-04-22 10:18:30 · 840 阅读 · 0 评论 -
Java回调机制解读
模块间调用在一个应用系统中,无论使用何种语言开发,必然存在模块之间的调用,调用的方式分为几种:(1)同步调用同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等待b()方法执行完毕,a()方法继续往下走。这种调用方式适用于方法b()执行时间不长的情况,因为b()方法执行时间一长或者直接阻塞的话,a()方法的余下代码是无法执行下去的,这样会造成整个流...转载 2019-07-01 20:24:30 · 128 阅读 · 0 评论 -
java中动态代理
一、在java中怎样实现动态代理1、我们要有一个接口,还要有一个接口的实现类,而这个实现类呢就是我们要代理的对象接口:1 package org.dynamicproxy.test;2 3 public interface UserDao {4 public void addUser(User user);5 }接口的实现类(即要代理的对象): 1...转载 2019-06-26 20:59:30 · 99 阅读 · 0 评论 -
如何使用Native.loadLibrary加载so文件
1.确保项目启动的时候so文件在classpath路径下2.Native.loadLibrary使用直接加载需要的类 例如:Native.loadLibrary("encryption", Encryption32.class) 加载一个使用c编写的加解密类...原创 2019-07-03 21:04:12 · 16252 阅读 · 0 评论 -
利用jar命令打包和解压
jar cvfm0 onenetlock.jar META-INF/MANIFEST.MF BOOT-INF/ META-INF/ org/ 生成jar文件,-m是指定META-INF/MANIFEST.MF文件,-0是指不压缩文件,如果压缩了无法使用jar -jar命令启动jar xvf test.jar 解压jar文件,一般会生成BOOT-INF/ META-INF/ org/这三个文...原创 2019-07-24 11:41:49 · 2975 阅读 · 0 评论 -
spring+dubbo先启动消费者再启动服务端调用报空指针的问题解决方法
如果是dubbo配置文件的方式:<dubbo:reference check="false"/>reference标签添加check="false" 这样就可以成功构造消费者对象,如果这时服务者没有启动,每次消费者调用服务者对象的时候,会提示没有对应的服务端;等到服务者启动的时候,就可以调用成功。java config的方式:直接上代码:@Beanpublic...原创 2019-07-29 18:03:17 · 2422 阅读 · 0 评论 -
数据转JSONString异常,write javaBean error
本文链接:https://blog.youkuaiyun.com/pange1991/article/details/79175448起因一位同事在接收RocketMQ消息后,为了方便以后排查问题,顺便就用fastjson将消息转成JSONString来打log。模拟代码如下public ConsumeConcurrentlyStatus consumeMessage(List<Message...转载 2019-08-16 17:43:44 · 5949 阅读 · 0 评论 -
inputStream的二次使用
nputStream会保存一个位置:Stream.Position,表示当前流中的位置,每次读取都是从这个位置开始,并且读取完成之后会把这个位置设置为最后读取的位置,因此第一次读整个Stream,Position到了末尾或者close了,第二次就读不到内容。此时,可以先把InputStream转化成ByteArrayOutputStream,后面要使用InputStream对象时,再从ByteAr...转载 2019-01-25 15:05:57 · 450 阅读 · 1 评论 -
java double-check lazy load------effedctive java 第七十一条:慎用延迟初始化(这个变量的作用是确保field只在已经被初始化的情况下读取一次)
private volatile FieldType field;FieldType getField(){ FieldType result = field; if(result==null){ synchronized(this){ result = field; if(result == null){ ...原创 2018-12-14 17:22:04 · 341 阅读 · 4 评论 -
线上出故障了!我慌得一匹!
线上运行的Java应用突然没有响应、响应缓慢,进程突然消失,遇到这些情况应该如何应对呢?今天教大家如何应对在线故障!...转载 2018-11-30 08:48:02 · 145 阅读 · 0 评论 -
Spring @Configuration 和 @Component 区别
Spring @Configuration 和 @Component 区别一句话概括就是 @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例。下面看看实现的细节。@Configuration 注解:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documen...转载 2018-07-12 21:00:02 · 7661 阅读 · 0 评论 -
spring cloud中Ribbon自定义负载均衡策略
一、Ribbon中的负载均衡策略1、Ribbon中支持的负载均衡策略AvailabilityFilteringRule:过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端server(active connections 超过配置的阈值) | 使用一个AvailabilityPredicate来包含过滤server的逻辑,其实就就是检查...转载 2018-07-05 16:50:30 · 592 阅读 · 0 评论 -
注解@EnableDiscoveryClient,@EnableEurekaClient的区别
SpringCLoud中的“Discovery Service”有多种实现,比如:eureka, consul, zookeeper。1,@EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现; 2,@EnableEurekaClient注解是基于spring-cloud-netflix依赖,只能为eureka作用;如果你...转载 2018-07-05 15:53:16 · 1838 阅读 · 0 评论 -
Spring泛型依赖注入的问题
Spring泛型依赖注入并不是强制性的,当找不到完全匹配的泛型注入时,spring会随机注入一个相同接口的实现类我遇到的情况描述:忘记在server类上加入@service注解,但是controller继承了 baseController<实体类>泛型,此时由于我service类没有添加注解,spring容器找不到和service接口完全匹配的泛型依赖注入,spring会随机找到一个实...原创 2018-07-11 21:11:49 · 2769 阅读 · 0 评论 -
eclipse快速抽取方法
方法一:使用菜单命令方法二:Ctrl+1方法三:快捷键Alt+Shift+M版权声明:本文为【优快云博主:松一160】原创文章,未经允许不得转载。 https://blog.youkuaiyun.com/songyi160/article/details/53168290...转载 2018-06-28 14:42:56 · 12863 阅读 · 0 评论 -
无效的列类型: getTimestamp not implemented for class ora
一、产生该异常的环境Java开发Dao层是mybatismybatis查询自动映射到实体类,出现该异常 二、问题探析 实体类中的字段类型与数据库中相同字段的数据类型不一致会导致该异常,类型一致后,测试,ok....原创 2018-06-27 11:35:25 · 2809 阅读 · 0 评论 -
本文介绍使用Mybatis拦截器,实现分页
本文介绍使用Mybatis拦截器,实现分页;并且在dao层,直接返回自定义的分页对象。2017-09-29修改:添加Mybatis拦截器分页对oracle、sqlServer的支持最终dao层结果:123public interface ModelMapper { Page<Model> pageByConditions(RowBounds rowBounds, Model re...转载 2018-06-04 18:04:49 · 645 阅读 · 0 评论 -
Synchronized同步静态方法和非静态方法总结
1.Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。 Java中每个对象都有一个锁,并且是唯一的。假设分配的一个对象空间,里面有多个方法,相当于空间里面有多个小房间,如果我们把所有的小房间都加锁,因为这个对象只有一把钥匙,因此同一时间只能有一个人打开一个小房间,然后用完了还回去,再由JVM 去分配下一个获得钥匙的人。情况1:同一个对象在两个线程中...转载 2018-06-04 16:56:03 · 547 阅读 · 0 评论 -
windows 与eclipse 常用快捷键 --每日复习三次
Windows:1.Ctrl + w 关闭浏览器当前显示的标签窗口 2. Alt + F4 关闭当前显示的应用窗口(例如:会关闭浏览器窗口打开的所有标签)3. Alt+Tab 切换窗口 Eclipse:1.Ctrl + d 删除光标所在行2.Shift + Enter 快速新起一行,并且光标移动到新起行3.Ctrl + Alt + Up(向上方向键):在本行上...原创 2018-07-24 17:19:16 · 192 阅读 · 0 评论 -
java网络编程之Netty编解码技术(六)
java网络编程之Netty编解码技术(六)概念理解 编解码技术,说白了就是Java序列化技术,序列化目的就两个,第一进行网络传输,第二对象持久化。虽然我们可以使用java进行对象序列化,Netty去传输,但是Java序列化的硬伤太多,比如Java序列化没法跨语言、序列化后码流太大、序列化性能太低等等。JBoss Marshalling序列化的速度是JDK的3倍。主流的编解码...转载 2018-07-25 17:56:40 · 174 阅读 · 0 评论 -
no libsigar-amd64-linux.so in java.library.path
今天又一次打算用到sigar来获取主机信息,在做完将程序写好,打包成可执行jar包,上传到ubuntu主机上等一些列步骤之后,当我用“java -jar ***.jar”执行该jar程序时,很意外的出现了no libsigar-amd64-linux.so in java.library.path错误。其实在第一次接触sigar的时候,也曾遇见过这个问题,当时是到处百度谷歌,最后终于给解决了。...转载 2018-07-26 16:25:40 · 1322 阅读 · 0 评论 -
Spring Boot集成MyBatis打包成jar时,setTypeAliasesPackage("xxx")找不到类的问题
MyBatis扫描通过VFS来实现在Spring Boot中,由于是嵌套Jar,导致Mybatis默认的VFS实现DefaultVFS无法扫描嵌套Jar中的类。解决办法,实现自定义的VFS,参考DefaultVFS增加对Spring Boot嵌套JAR的处理。以下为SpringBootVFSimport java.io.IOException;import java.net.U...转载 2018-10-15 18:02:33 · 4472 阅读 · 0 评论 -
微信被动回复消息失败所有的坑!Java篇【避坑指南】
版权声明:本文为博主原创文章,转载请注明出处!有时候也不是原创,手快就选了(我的文章随意转载复制,不在乎的哈!) https://blog.youkuaiyun.com/qq_31384551/article/details/81776265背景:随便一个微信订阅号都可以,用户在订阅号发送消息,然后我们自己的服务器做出消息回复,之间的过程处理好多坑。我这里是从接入成功后开始踩到的坑,关于接入的没什...转载 2018-09-28 14:27:36 · 602 阅读 · 0 评论 -
slf4j如何打印java异常堆栈信息throwable对象
版权声明:本文为博主原创文章,未经博主允许不得转载[http://blog.youkuaiyun.com/doctor_who2004]。 https://blog.youkuaiyun.com/doctor_who2004/article/details/43569407SLF4J 1.6.0 以前的版本,如果打印异常堆栈信息,必须用log.error(String msg, Throwable t)log...转载 2018-09-11 11:36:39 · 2447 阅读 · 0 评论 -
Java JWT: JSON Web Token
Java JWT: JSON Web Token for Java and AndroidJJWT aims to be the easiest to use and understand library for creating and verifying JSON Web Tokens (JWTs) on the JVM.JJWT is a Java implementation ba...转载 2018-08-01 18:08:12 · 1021 阅读 · 0 评论 -
SpringMVC配置多视图-内容协商原理
Spring Framework 3.2增强了ContentNegotiationManager,使得配置多视图变得尤为轻松。并且对于多视图的解析的实现都可以有多种供你选择。如果你想使用Spring作为网站后台,并且想完全分离 前后台的代码依赖,那么了解如何配置Spring的基于内容协商多视图是非常必须而且有用的。下面就来看看如何配置Spring,让它支持JSON/XML视图吧。先看看Spri...转载 2018-08-01 09:50:49 · 407 阅读 · 0 评论