java
文章平均质量分 64
Wayne_Johnson1993
这个作者很懒,什么都没留下…
展开
-
java socket网络编程
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。(百度百科)对于socket,无非就是建立一个双向的网络通信链路。socket是对TCP/IP进行了封装的一个类。socket出现只是为了方便程序员处理基于tcp/ip协议的网络通信的处理。客户端通过建立一个socket连接至目标地址,而服务端通过暴露给客户端的接口,供客户端连接。值得注意的是:原创 2016-05-11 19:30:46 · 361 阅读 · 0 评论 -
memcached入门搭建
公司项目中到处可见memcached的使用,当然,公司的那套是封装好的,只要配置和调用就行了。但是我们还是需要了解一下内部的一些基本流程。现在我写一个最简单的memcached例子。首先,在客户端上安装memcached,具体安装请就不用我多解释了,和普通软件安装一样。接着,我们从网上获取到一些jar包。当然也可以用maven直接获取。我是直接从maven库中拿到的。//获取客原创 2016-08-31 10:50:34 · 296 阅读 · 0 评论 -
序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是转载 2016-08-31 14:13:03 · 292 阅读 · 0 评论 -
spring加载properties文件顺序
我们在使用spring是,在配置文件中经常需要使用到标签。这样系统配置就能直接写到文件中,方便 以后更改。使用了该标签之后,spring的配置文件属性值就能直接使用占位符来处理了。如下代码:<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <pro原创 2016-09-02 16:31:52 · 12343 阅读 · 1 评论 -
循环往list中放对象却总是一个对象的问题
最近在写代码的时候遇到一个问题。大致情况是有一个List对象,要循环往list中放入对象。例如:Student s = new Student();List list = new ArrayList();for(int i = 0;i //此处设置对象属性 s.setXXX();//将设置好属性的对象放入listlist.add(s);}大致代码类似于这样。本以原创 2016-09-18 18:06:38 · 3621 阅读 · 0 评论 -
记录一次生产内存泄漏的排查
最近公司交易量上去了,却发现,经常到了晚上的时候,CPU告警,内存告警。初步排查,发现并没有太多的明显的BUG。所以开始通过jvm分析工具来排查问题。1、通过jps命令查看当前操作系统中执行的java程序,获取到进程ID。2、通过进程的ID,获取当前堆使用情况。jmap -heap 2249。(这里的2249是我当前环境的id)截图如上。不过这个不是当时具体的截图。应为bug已经紧急修复,无法重现...原创 2018-04-20 10:54:13 · 913 阅读 · 0 评论 -
JVM监控问题排查
一、JVM运行时数据区 从上图可以看出JVM运行时内存区域的划分。下面分别来介绍一下:1、程序计数器 程序计数器中,主要作用是通过改变这个数值来选取下一条需要执行的指令。例如,线程切换之后,需要读取该线程程序计数器中的值来恢复现场。所以,改内存区域是线程独享的。2、虚拟机栈&本地方法栈 JVM会为每个线程分配一个vm stack,然后线程中的每个方法都是一个stack flam...原创 2018-05-04 16:55:20 · 595 阅读 · 0 评论 -
关于JDK动态代理的一些原理理解
首先查看proxy类的代码public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)...原创 2018-07-08 18:35:43 · 320 阅读 · 0 评论 -
记一次git提交GitHub失败问题
今天本地新建了一个项目,然后通过idea share到GitHub,发现一只share失败。报错 信息如下: 原因是,我安装git的时候,将git的换行检查功能设置为true。Git提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符。这个功能的选项如下:false - 不做任何检查 warn - 在提交时检查并警告...原创 2018-07-24 14:17:31 · 326 阅读 · 0 评论