
1. Java学习历程
文章平均质量分 50
小师兄.
语言学习开发路上的一个初学者。
展开
-
ARP协议工作原理
ARP协议工作原理每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与Mac地址的映射关系广播给其他主机。网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。某个主机需要发...转载 2019-11-12 17:14:40 · 3650 阅读 · 0 评论 -
ES7.4.0依赖
ES7.4.0依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> ...原创 2019-11-07 11:21:48 · 1856 阅读 · 0 评论 -
Spring boot java.awt.HeadlessException: null处理
Spring boot java.awt.HeadlessException: null处理但是maven写的客户端界面在Spring boot 调用时会报错 -.- 错误如下: 用了好久时间总算查出了bug在虚拟机选项中加入-Djava.awt.headless=false ...原创 2018-12-29 09:56:42 · 2458 阅读 · 0 评论 -
常见的java代码转换成json
常见的java代码转换成json1. List集合转换成json代码List list = newArrayList();list.add( "first" );list.add( "second" );JSONArray jsonArray2 = JSONArray.fromObject( list );2. Map集合转换成json代码Map map = n...原创 2018-11-22 17:43:09 · 1025 阅读 · 0 评论 -
websocket java使用demo-包含客户端与服务端使用
服务端代码:package com.xxg.websocket;import java.io.IOException;import java.io.InputStream;import java.net.URI;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocke...转载 2018-11-22 17:23:42 · 1424 阅读 · 1 评论 -
HTTP长连接、短连接
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。2. 如何理解HTTP协议是无状态的...转载 2018-11-21 09:44:35 · 202 阅读 · 0 评论 -
JAXB注解使用
一.Jaxb处理java对象和xml之间转换常用的annotation有:@XmlType @XmlElement @XmlRootElement @XmlAttribute @XmlAccessorType @XmlAccessorOrder @XmlTransient @XmlJavaTypeAdapter二.常用annotation使用说明1.XmlType @...转载 2018-11-07 13:33:28 · 361 阅读 · 1 评论 -
国内maven库镜像(阿里云)提升加载包速度
原来的maven地址应该是:http://repo1.maven.org/maven2/还有一个: http://central.maven.org/maven2/但是也实在是太慢了。最近找到阿里云的好像可以。配置如下:<mirrors> <mirror> <id>alimaven</id> <...转载 2018-11-02 17:35:40 · 242 阅读 · 0 评论 -
springboot无法正常启动工程
查阅官方文档:https://docs.spring.io/spring-boot/docs/1.5.17.RELEASE/reference/htmlsingle/#boot-features-adding-active-profilesProfilesSpring Profiles provide a way to segregate parts of your application...原创 2018-11-01 19:34:40 · 761 阅读 · 0 评论 -
如何双击运行可执行jar包
我这有一个可执行打jar包,无法点击运行。看了我网上的修改注册表的方式也无法执行。查到下面的方法:桌面下新建一个批处理文件:runjar.bat 然后拷贝下面的代码到runjar.bat文件@echo offjava -jar %1pause选择你的可执行jar包,右键选择打开方式,选择默认runjar.bat打开。 如图所示:我这里是一个可执行的jar文...转载 2018-10-30 17:16:42 · 2635 阅读 · 0 评论 -
Intellij IDEA 快捷键
【常规】Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 Ctrl+[ OR ],可以跑到大括号的开头与结尾 Ctrl+F12,可以显示当前文件的结构 Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择...转载 2018-10-16 15:58:28 · 313 阅读 · 0 评论 -
@Data注解的作用
一般写代码时,会写setter和getter方法,但是通过@Data注解时,只需要声明变量就可以。源码:@Target(ElementType.TYPE)@Retention(RetentionPolicy.SOURCE)public @interface Data { /** * If you specify a static constructor name, then t...原创 2018-09-25 15:44:31 · 9770 阅读 · 0 评论 -
HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表 ...转载 2018-09-07 14:35:48 · 111 阅读 · 0 评论 -
ExcutorService部分future
1、Executors工厂创建ExecutorService有三种方式,同时提供四种线程池方法: ExecutorService executorService1 = Executors.newSingleThreadExecutor(); ExecutorService executorService2 = Executors.newFixedThreadPool(10); ...原创 2018-09-07 11:09:12 · 361 阅读 · 0 评论 -
CommandLineRunner与ApplicationRunner的使用及源码解析
我们在使用SpringBoot搭建项目的时候,如果希望在项目启动完成之前,能够初始化一些操作,针对这种需求,可以考虑实现如下两个接口(任一个都可以) org.springframework.boot.CommandLineRunner org.springframework.boot.ApplicationRunner 1.CommandLineR...转载 2018-09-06 13:53:10 · 784 阅读 · 0 评论 -
单元测试无法注入问题
1、问题:单元测试,无法注入,注入时为null2、解决方案:单元测试类前加:@RunWith(SpringRunner.class)@SpringBootTest3、完整代码:MessageProducerTest.javaimport com.chargedot.server.producerdemo.message.MessageProducer;impor...原创 2018-12-24 10:58:04 · 4307 阅读 · 0 评论 -
多线程无法注入kafkaTemplate(或者其他类)问题
1、问题:在线程runnable中,无法将需要的kafkaTemplate(或者其他类)注入 2、解决方案:通过封装ApplicationContex类(继承ApplicationContextAware),获取kafkaTemplate的bean实例。 3、代码演示:SpringContextUtil.java工具类import org.springframe...原创 2018-12-24 11:08:39 · 4780 阅读 · 1 评论 -
java.io.IOException: Connection reset by peer异常
java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) at sun.nio.ch.IOUtil.readI...转载 2019-01-08 18:16:05 · 30160 阅读 · 0 评论 -
flink初步学习
原创 2019-09-26 11:29:46 · 232 阅读 · 0 评论 -
使用Flink实现索引数据到Elasticsearch(ES5)
由于在学习的是ES6,因此记录一下ES5的实现方式,具体参考官方:https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/connectors/elasticsearch.html#installing-elasticsearch官方的学习还是非常好的,很清晰。使用Flink处理数据时,可以基于Flink提供的批式...转载 2019-09-24 11:19:41 · 1550 阅读 · 0 评论 -
三种填充模式的区别(PKCS7Padding/PKCS5Padding/ZeroPadding)
某些加密算法要求明文需要按一定长度对齐,叫做块大小(BlockSize),比如16字节,那么对于一段任意的数据,加密前需要对最后一个块填充到16 字节,解密后需要删除掉填充的数据。ZeroPadding,数据长度不对齐时使用0填充,否则不填充。 PKCS7Padding,假设数据长度需要填充n(n>0)个字节才对齐,那么填充n个字节,每个字节都是n;如果数据本身就已经对齐了,则填充一块...转载 2019-07-20 13:12:41 · 3201 阅读 · 0 评论 -
sdk反射外部接口(class.forName)
1、加载反射文件public class ReflectClassLoader { protected static final Logger LOG = LoggerFactory.getLogger(ReflectClassLoader.class); private static ReflectClassLoader intance; public Prop...原创 2019-06-25 09:39:59 · 555 阅读 · 0 评论 -
Java反射机制的介绍 & 实战攻略
前言在 Java中,反射机制(Reflection)非常重要,但对于很多开发者来说,这并不容易理解,甚至觉得有点神秘 今天,我将献上一份 Java反射机制的介绍 & 实战攻略,希望你们会喜欢。目录Java反射机制1. 简介 定义:Java语言中 一种 动态(运行时)访问、检测 & 修改它本身的能力 作用:动态(运行时)获取类的完整结构信息 &am...转载 2019-06-10 15:57:04 · 153 阅读 · 0 评论 -
mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 如果出现:
如果出现:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,我经常就是写错了一两个字母搞的很长时间找不到错误按以下步骤一一执行:...转载 2019-04-09 14:25:10 · 282 阅读 · 0 评论 -
JAVA与C++通信之字节序
1.BIG-ENDIAN、LITTLE-ENDIAN跟多字节类型的数据有关的比如int,short,long型,而对单字节数据byte却没有影响。BIG-ENDIAN就是低位字节排放在内存的低端,高位字节排放在内存的高端。而LITTLE-ENDIAN正好相反。 比如 int a = 0x05060708 在BIG-ENDIAN的情况下存放为: 字节号 0 1 2 3 数据...转载 2019-04-02 08:59:01 · 915 阅读 · 1 评论 -
Java字符串截取
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。Object src--------原数组int srcPos,-------原数组开始位置Object dest---------目的数组int destP...原创 2019-03-28 14:50:37 · 818 阅读 · 0 评论 -
如何对 JPA 或者 MyBatis 进行技术选型
在我们平时的项目中,大家都知道可以使用 JPA 或者 Mybatis 作为 ORM 层。对 JPA 和 Mybatis 如何进行技术选型?下面看看大精华总结如下:最佳回答首先表达个人观点,JPA必然是首选的。个人认为仅仅讨论两者使用起来有何区别,何者更加方便,不足以真正的比较这两个框架。要评判出更加优秀的方案,我觉得可以从软件设计的角度来评判。个人对 mybatis 并不熟悉,但 ...转载 2019-03-12 10:24:12 · 424 阅读 · 0 评论 -
JAVA中如何随机生成确定范围中的随机数
Java中生成确定范围中的随机数,有两种方法:(1)使用util包下面的Random类,Random类中有一个nextInt()方法,用于生成随机的整数。nextInt(int n),参数n表示0<=随机数<n。所以在实际应用中,应该灵活使用。下面例子,随机生成50个[10, 50]之间的随机数。importjava.util.Random;...转载 2019-03-15 11:58:29 · 4280 阅读 · 0 评论 -
java去除空格,‘\n’,‘|’
String body = soapMessage.getSOAPBody().getTextContent();body = Pattern.compile("\\s*|\t|\r|\n").matcher(body).replaceAll("");log.info("[body]:{}", body);原创 2019-02-26 11:46:23 · 1995 阅读 · 0 评论 -
Failed to configure a DataSource
在用spring cloud的时候,先创建了一个parent项目,然后分别加入eureka-server模块、短信模块,运行正常。最后再加入支付模块(需整合myBatis、mySql)之后,eureka-server模块和短信模块报错:Description:Failed to configure a DataSource: 'url' attribute is not specifie...转载 2019-02-14 15:43:14 · 475 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
Java7 HashMapHashMap 是最简单的,一来我们非常熟悉,二来就是它不支持并发操作,所以源码也非常简单。首先,我们用下面这张图来介绍 HashMap 的结构。 大方向上,HashMap 里面是一个数组,然后数组中每个元素是一个单向链表。上图中,每个绿色的实体是嵌套类 Entry 的实例,Entry 包含四个属性:key, value, hash 值和用于单向链...转载 2019-02-15 10:57:44 · 188 阅读 · 0 评论 -
ScheduledExecutorService任务定时代码示例
package com.effective.common.concurrent.execute;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.Ex...转载 2018-09-03 09:03:50 · 233 阅读 · 0 评论 -
ConsumerRecords API
ConsumerRecord API用于从Kafka集群接收记录。 此API由主题名称,分区号(从中接收记录)和指向Kafka分区中的记录的偏移量组成。ConsumerRecord类用于创建具有特定主题名称,分区计数和< key,value>的消费者记录。 对。 它有以下签名。public ConsumerRecord(string topic,int partition, lo...转载 2018-08-30 15:34:58 · 5451 阅读 · 0 评论 -
Java学习 (十一)mybatis增、删、改、查方法整理
@Test public void testMybatis() throws Exception{ //加载核心配置文件 String resource = "mybatis-config.xml"; InputStream in = Resources.getResourceAsStream(resource); //创建SqlSessionFactory SqlSessi...原创 2018-07-05 13:12:51 · 169 阅读 · 0 评论 -
Java学习记录:纠错Junit单元测试遇到的initializationerror:method initializationerror not found
原因可能如下:1.有返回值的方法不能直接测试2.带参数的方法不能直接测试3.访问权限在public一下的方法不能直接测试4.static静态方法不能直接测试5.不能给出现前四个条件中任意一个的方法添加@Test注解,否则执行满足@Test条件的方法也会出现initializationerror初始化异常只有public void 的方法可以使用@Test测试要点一:必须为public,以下均不行...转载 2018-07-05 11:04:50 · 250 阅读 · 0 评论 -
Tomcat无法启动:Server Tomcat v8.5 Server at localhost failed to start
Tomcat无法启动项目状态 Maven项目:基础环境(依赖,基本配置文件)搭建完成,前端页面都导入,部署测试项目环境,出现该问题问题情景: 1.弹窗提示Tomcat启动失败 2.Console报错: 问题: 严重: A child container failed during start 严重: The required Server component failed to...转载 2018-07-23 15:44:03 · 15247 阅读 · 15 评论 -
Eclipse — Testng references non-existing project XXX, launch configuration
Go to Project->propertiesIn properties window's left pane select "Run/Debug Settings".Select "Configure" and click "edit"In tab "Main" replace Project to your current project.Select "Main class" by..转载 2018-07-11 11:55:26 · 2696 阅读 · 0 评论 -
Java 学习(三)日期时间
1、日期比较Java使用以下三种方法来比较两个日期:使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。使用 compareTo() 方法...原创 2018-06-29 09:49:30 · 501 阅读 · 0 评论 -
Java学习(二)数组
1、声明数组变量首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[] arrayRefVar; // 首选的方法 或 dataType arrayRefVar[]; // 效果相同,但不是首选方法注意: 建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自 C/C++ ...原创 2018-06-29 09:26:00 · 140 阅读 · 0 评论 -
Java学习(一)基本知识(字符串)
1、Java Math 类Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。Test.java 文件代码:public class Test { public static void main (String []args) { ...原创 2018-06-29 09:08:34 · 169 阅读 · 0 评论