- 博客(35)
- 资源 (8)
- 收藏
- 关注
原创 需要学习内容
1、序列化2、java异常处理规范通过源码可以发现,hashMap的数组长度一定保持2的次幂,这样做有什么好处呢?//根据Hash值和Hash表的大小选择合适的Hash桶 static int indexFor(int h, int length) { return h & (length-1); } 如果length为2...
2020-01-05 22:22:48 191
原创 Java分布式学习和总结
零、高并发系统构建原始—》服务集群分流—》数据库分库分表、读写分离—》redis缓存分读的压力—》mq分写的压力一、zookeeper高可用,读写 Failover,leader选举 可使用场景、项目中已使用场景 写数据提交策略 客户端代码原理二、Kafka 0、概念broker producer consumer partition,topic,分布式,高可用...
2019-09-22 23:31:06 402
原创 centos7安装k8s集群
三台虚拟机搭建k8s集群1.同步ntp时间,在每台上执行ntpdate -u cn.pool.ntp.org2.报错:docker-ce-cli conflicts with 2:docker-1.13.1-94.gitb2f74b2.el7.centos.x86_64 因为已经安装过docker,所以先卸载掉, yum list installed | grep doc...
2019-03-31 22:04:16 1384
原创 centos7安装docker
vi /etc/yum.repos.d/docker.repo[dockerrepo]name=Docker Repositorybaseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/enabled=1gpgcheck=1gpgkey=https://yum.dockerproject....
2019-02-24 15:43:26 1401
原创 java回调函数
两种回调1、同一进程中,被回调方法所属类需要在调用‘调用回调方法’的类的方法时将自己传过去public class A{ public void methodA(){ methodB(this) } public void callback(){ }}public class B{ public void methodB(A...
2018-08-12 17:56:20 223
原创 poi生成excel时换行符(\n)只有鼠标双击才会生效,设置列宽度不生效
1、poi生成excel时换行符(\n)只有鼠标双击才会生效 解决:样式中打开自动换行style.setWrapText(true);2、设置列宽度不生效sheet.setDefaultColumnWidth((short) 20) 使用这个函数 sheet.setColumnWidth(i, 30 * 256);,在cell层次设置列宽3、同理,在row级别...
2018-08-04 16:04:05 8580 3
原创 java方法引用学习
package jdk18.method.reference;public class Student { private String name; private int score; public Student(){ } public Student(String name,int score){ this.name = na...
2018-06-24 19:39:00 184
原创 包装cmd窗口和linux命令行操作一样
1. ls新建ls.bat文件,添加如下内容@echo off dir 然后放入目录C:\Windows下然后即可在cmd窗口中实用ls了。2.包装notepad++,在cmd窗口中用vi调用notepad++来编辑文件(1)将notepad++的安装目录加入到环境变量PATH路径下(2)新建vi.bat,输入如下内容@echo off start notepad++.exe(3)同样放到目录...
2018-05-20 19:45:54 569
原创 shell sed总结 D指令
1、D指令后不会打印再打印pattern空间的内容eg: data文件内容This is header lineThis is first line.This is second line.一、指令:sed 'N;h;G;p;D' dataThis is header lineThis is first line.This is header lineThis is first line.Thi...
2018-05-10 21:50:17 2530
原创 Java单元测试打桩-mockito,PowerMockito简单使用,模拟方法内new对象
0、需要的jar<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</sco
2018-04-28 23:29:11 20688 8
原创 java线程的一点感悟(sleep,wait,synchronized,时间片等)
志在以实例的方式描述线程中使用的一些容易混淆概念的方法。1、sleep()方法不释放锁public class SleepFunction { static final Object obj = new Object();public static void main(String[] args) { new Thread(new Runnable() { public void r...
2018-04-15 23:59:14 1860
原创 java搜索文件小程序(递归搜索文件)
起因:搜索电脑中一个视频文件,但不记得文件名了,windows搜索后缀名没搜到,所以想着打印出大于50M的所有文件public class SearchFile { private static void search(File file){ if(file.isDirectory()){//如果是目录 File[] files = file.lis...
2018-04-15 17:41:05 1015
原创 遍历Map的时候删除map中的元素,报异常Exception in thread "main" java.util.ConcurrentModificationException
简单的例子package collection;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class TestRemoveMap { static Map<Strin...
2018-01-28 21:03:22 1225
原创 线程池ThreadPoolExecutor的submit方法
Future submit(Callable task); Future submit(Runnable task, T result); Future submit(Runnable task);三个重载方法,第一个很好理解,传入callable,本身call函数就有一个返回值,可以正常取得。第二个第三个就不清楚怎么可以取到返回值了,因为Runnabl
2018-01-27 17:04:49 13255 5
原创 Unable to invoke no-args constructor for interface.... Registering an InstanceCreator
Gson将json字符串转化成对象的时候报错分析:由于将要转化成的对象包含一个接口,无法将其实例化;可以由对象转化为json字符串是因为多态,可以知道接口具体对应的实例类。举例要实现json与对象转化的复杂java beanpublic class ComplexBean { private String a; private int b; private Address addr;
2018-01-18 14:23:56 12466 1
原创 Mybatis源码分析之Spring与Mybatis整合MapperScannerConfigurer处理过程源码分析
前面文章分析了这么多关于Mybatis源码解析,但是我们最终使用的却不是以前面文章的方式,编写自己mybatis_config.xml,而是最终将配置融合在spring的配置文件中。有了前面几篇博客的分析,相信这里会容易理解些关于Mybatis的初始化及其执行,但是仍旧需要Spring的很多知识,用到的时候会简略提到下。下面先看下我们具体使用Mybatis时候是怎样配置的。
2017-09-03 23:54:14 1647
原创 Mybatis源码详解之接口方法被执行流程源码解析
与上一篇Mybatis源码解析的博客已经隔了好长一段时间,最近发生了一些乱七八糟糟心的事情,甚至每天加班,没来得及写点什么,最近一个月的学习是乱的一塌糊涂。 接着上一篇的分析,上一篇完成了所有配置文件的解析,将各个配置文件都解析到一个叫Configuration的类里,这些就是接口方法可以被执行的元数据,任何一个方法的执行必然依赖于此。接口方法执行流程就是怎样使用...
2017-09-02 17:05:01 1177
原创 Mybatis源码解析之初始化配置文件封装为Configuration源码详解
接着上文太长的那个文章开始分析http://blog.csdn.net/ccityzh/article/details/71517490 其实初始化的部分没有什么可以分析的,就是解析Xml文件,不会解析的可以查一下,现在常用的都是JDOM,DOM4J,不过这里不是用的这两种。分析的过程中有初始化某些关键的部分会单独拿出来分析一下。 注:本文都是根据上一篇中实例...
2017-07-30 11:58:16 1241
原创 手写JAVA NIO实现Socket通信及其过程中注意的问题
当然现在不需要自己手写NIO实现socket,都是在需要建立TCP/IP连接的程序中直接使用mina框架,或者netty框架, 后者使用的更多。本文仅仅是手写NIO,找一找学习NIO中遇到的问题,以及在调试的过程中学习对某些API的理解,文中只写了服务端,客户端用SocketTools这个工具充当,测试。
2017-07-26 13:33:54 2027 2
原创 Mybatis源码分析之插件(plugins)源码详解
针对有时候对Mybatis插件编写的一头雾水,本文针对性的分析了插件从注册到执行的整个流程,将其中应用到的知识都有所讲解,相信下次实现起自己的插件会如鱼得水,轻轻松松。
2017-06-10 07:32:27 643
原创 Mybatis执行dao接口方法的流程梳理及源码分析
以前一直都是在公司的写好的框架模式中直接使用Mybatis,而且也甚是简单,不需要什么思考,只注重sql语句就好了。但是用着用着就对他的实现流程方式感到奇怪了,明明看到的只是在Dao层写了一个接口,在配置文件中写好自己的sql,就可以给人感觉,接口被自动实例化,然后在service层调用接口的实例,完成他从数据库取数据的过程。在这种好奇的驱使下开启了对Mybatis的浅显阅读。其实之前一段时间看了些框架的代码,一直懒得总结,现在写一点内容供自己以后参考。
2017-06-10 07:31:19 5751
原创 JDK动态代理(接口的代理)
本文基于动态代理的基本思路,实现对接口的动态代理,使用接口函数完成你想完成的任务。其实主要是为了理解在使用mybatis的时候只有dao层接口函数,却可以在service层用来实现其配置文件中sql语句的功能,恍惚给人一种接口被执行的阴影。
2017-04-12 21:21:48 3210 2
原创 mysql导入.sql文件时报错:incorrect string value
mysql在倒入.sql文件的时候一直报错,具体如下所示:一开始my.ini文件中的默认编码是这样的:经网上各种查,是需要把上面那个改为gbk;但是我的mysql是需要重启服务.具体操作:1,将utf8改为gbk;2,重启mysql服务3.登陆数据库4,导入.sql文件,一切OK
2016-10-30 21:36:32 3124
原创 mysql登陆数据库的时候报错:mysql: Character set 'utf8' is not a compiled character set and is not specified
mysql连接数据库的时候一直报错, 如下所示:经检查后是配置文件my.ini文件中default-character-set=utf8设置的时候后面多加了个分号,将分号去掉以后即可正常启动,
2016-10-30 21:01:52 6548 1
原创 C/C++ 笔试、面试题目总结,
基本都没写答案,查找答案的过程就是学习的过程,会的也会引起一些思考。1. extern,extern”C”的作用, 如何判断一段程序是由C 编译还是由C++编译程序编译的?2. 进程和线程的区别和联系 3. inline的作用4. KMP算法5. 函数调用方式· __cdecl 堆栈由调用者清除
2015-10-06 17:32:51 732
原创 总结别人的一点操作系统知识,分页分段,死锁,内存碎片,
1.分页与分段的主要区别:1)、段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。2)、页的大小固定不变,由系统决定。段的大小是不固定的,它由其完成的功能决定。3)、段式向用户提供的是二维地址空间,页式向用户提供的是一维地址空间,其页号和页内偏移是机器硬件的功能。4)、由于段是信息的逻辑单位,因此便
2015-09-29 12:40:29 1820
原创 C数据类型转换
简单总结一些经常用到又不注意的数据类型转换,简单的精度提升就不介绍了。包括常量转换,指针类型转换等1.在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一部分数据,例如 int ival; double dval; ival=dval; //dval转换为int,切除小数部分
2015-09-26 10:46:52 333
原创 不同位数编译器下的基本数据类型所占的字节数
32位编译器short int : 2个字节int: 4个字节unsigned int : 4个字节long: 4个字节long long: 8个字节unsigned long: 4个字节float: 4个字节double: 8个字节char :1个字节指针:4个字节64位编译器short
2015-09-26 10:36:09 536
原创 总结别人的结果,sigchld信号处理,和close与shutdown的区别
1. sigchld信号处理进程一章讲过用wait和waitpid函数清理僵尸进程,父进程可以阻塞等待子进程结束,也可以非阻塞地查询是否有子进程结束等待清理(也就是轮询的方式)。采用第一种方式,父进程阻塞了就不能处理自己的工作了;采用第二种方式,父进程在处理自己的工作的同时还要记得时不时地轮询一下,程序实现复杂。其实,子进程在终止时会给父进程发SIGCHLD信号,该信号的默认处理
2015-09-25 20:30:19 445
原创 深信服软件开发面试---体无完肤
心里有预期,没有很难过,第一次面试,打击很大, 问了7个问题,没一个回答好的,只有最后一个面试官问可以了吗,非常确定回答可以了,然后跑了。前面进去首先把你的笔试试卷找了出来,然后热身的问了几个小问题,例如昨天的题目感觉怎么样,查没查不确定的题目,平时在linux下还是windows 下写程序等。然后就按着他手里的一张单子开始问1,new malloc的实现区别
2015-09-25 17:35:46 10837 1
原创 将字符串中连续相同的字符表达成字符加个数的形式输出
例如 hello 输出hel2o; #include#includevoid spluscount(char *string){ int n=strlen(string); char k; int s=0; int count=1; char outstring[32]={0}; //定义重新输出的数组 for(int i =0; i
2015-09-17 21:39:41 1003
原创 实现strstr()
实现字符串函数strstr(a,b);即b与a 匹配,如果匹配成功,输出匹配后的所有字符,如果匹配失败,输出提示。 #include#includeint stringmatch(char *scrstring, char *zistring) //匹配字符串,最笨的匹配方法,其实可以用KMP匹配的,提高一点效率、 { int scelen=strlen(scrst
2015-09-16 10:17:42 885
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人