
吾日三省吾身
~sky
生命不息,奋斗不止;
严以修身,宽以待人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
几种常用序列化和反序列化方法
摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易...转载 2019-12-30 21:48:38 · 3486 阅读 · 0 评论 -
JUC
原创 2019-12-29 22:26:20 · 205 阅读 · 0 评论 -
信号量和管程
信号量并发(互斥访问) 同步(条件同步) 整数变量、P(-1)V(+1)操作特性:信号量是被保护的整数变量,只能通过PV操作修改,由OS保证 P()可能阻塞,V()不会阻塞管程改进信号量在处理临界区的时候的PV操作匹配的繁琐 一个线程在临界区执行,必须执行到它退出临界区,它才能放弃临界区的互斥访问,而管程允许在执行的过程当中,临时放弃。放弃之后其他线程就可进入管程区域 采...原创 2019-12-28 22:34:00 · 367 阅读 · 0 评论 -
DB—— group by 和 select
本文链接:https://blog...转载 2019-11-02 14:35:36 · 880 阅读 · 0 评论 -
DB—— group by 和 distinct 效率比较
数据库操作中,去重计数有两种实现方式,一种是 count + distinct 一种是count + group bytable id salary 1 10K 2 15K 3 10K 4 10K 5 20K 6 10K 7 15K 假设有以上这么个表,要对salary去重计数,按照上面的思路有两种实现方法:...原创 2019-11-01 15:13:13 · 1886 阅读 · 0 评论 -
tomcat8日志分割
有多种方法可以实现Logrotatecronologlog4j等都可以,我这里使用的是cronolog1、编译安装cronolog首先查看是否安装了cronologwhich cronolog我这里centenOS 显示路径为/usr/sbin/cronolog如果没有安装:/usr/bin/which: no cronolog in (/usr/loca...原创 2019-10-30 17:19:27 · 2756 阅读 · 0 评论 -
Java——内存模型
Java内存模型写在前面一、什么是Java内存模型二、为什么要有内存模型2.1 CPU和缓存一致性2.2 处理器和编译器的指令重排2....转载 2019-10-27 21:02:07 · 321 阅读 · 1 评论 -
Java——Arrays.sort自定义排序两种方式
Comparable接口是你要进行排序的 数据结构或者说对象 所对应的类需要实现的接口,缺点是只能按你实现的这一种方式排序:public class UserInfo implements Comparable<UserInfo> { private int id; private String userName; private String phone; pri...原创 2019-10-25 17:11:30 · 3578 阅读 · 0 评论 -
1024
衣带渐宽终不悔bug寻得人憔悴原创 2019-10-24 11:58:36 · 18469 阅读 · 0 评论 -
Java三大器小结
filter实例/filter实例/监听器实例过滤和拦截区别/Listener实例/Listener实例原创 2019-10-23 17:42:18 · 260 阅读 · 0 评论 -
ResultSet
写一个方法,查询用户表中的所有用户信息,返回一个用户列表:public static <T> List<T> show(String sql, Class<T> c1) { List<T> listmap = new ArrayList<>(); DBConnection db = new DBConnecti...原创 2019-10-22 20:22:14 · 175 阅读 · 0 评论 -
JDBC中Statement 和 PrepareStatement 的区别
作用:数据库连接的时候创建一个对象,然后通过对象去调用executeQuery方法来执行sql语句Statement:String sql = "select * from users";Statement stmt = db.conn.createStatement();ResultSet rs = stmt.executeQuery(sql);PrepareStatement...原创 2019-10-22 19:45:48 · 876 阅读 · 0 评论 -
Cookie和Session
Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力一、Cookie解决问题:因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不...原创 2019-10-21 19:25:50 · 206 阅读 · 0 评论 -
数据传输、提交方式
原创 2019-10-21 10:23:49 · 147 阅读 · 0 评论 -
请求头(request headers)和响应头(response headers)解析
*****************请求头(request headers)*****************POST /user/signin HTTP/1.1 --请求方式 文件名 http版本号Host: passport.cnblogs.com --请求地址Connection: keep-alive --Connection决定当前的事务完成后...转载 2019-10-20 22:09:18 · 2615 阅读 · 0 评论 -
聊聊dubbo
☆聊聊Dubbo(一):为何选择1. 前言随着现在互联网行业的发展,越来越多的框架、中间件、容器等开源技术不断地涌现,更好地来服务于业务,实现业务并解决问题。然而面对众多的技术选择,我们要如何甄别出适合自己团队业务的技术呢?对于人来说,鞋子过大,可能影响奔跑的速度,鞋子过小,可能影响身体的成长。技术对于业务也是如此的关系。所以,相对于技术的学习、搭建、使用、运维等技能,我们 对技术的甄别选择...转载 2019-10-15 13:49:41 · 310 阅读 · 2 评论 -
Centenos7.3下安装tomcat8
1.下载tomcat8——(我的话是本地上传的——使用rz,sz【包下载-yuminstalllrzsz】可以上传,下载文件); wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz2.解压文件并且重命名——(我这里用的是unzip【包下载-yum...原创 2019-09-10 11:25:45 · 941 阅读 · 0 评论 -
Spring——@Autowired和@Resource 的区别
@Autowired默认是按照bytype进行注入的,如果发现找到多个bean,则再按照byname的方式查找,如果还有多个,抛出异常//example:@Autowiredprivate UserService userService ; spring先找类型为 Userservice 的bean; 如果存在且唯一,结束; 如果不唯一,找name为 userser...原创 2019-10-07 21:35:38 · 340 阅读 · 0 评论 -
JVM——内存分配与回收
原创 2019-10-08 22:05:22 · 139 阅读 · 0 评论 -
请求过程——>架构如何随流量进行变化
请求过程:架构如何随着流量升级变化?原创 2019-10-09 19:38:20 · 166 阅读 · 0 评论 -
设计模式——代理模式
解决问题:代码混乱:越来越多的非业务需求(日志和验证等)加入后, 原有的业务方法急剧膨胀. 每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点. 代码分散:以日志需求为例, 只是为了满足这个单一需求, 就不得不在多个模块(方法)里多次重复相同的日志代码. 如果日志需求发生变化, 必须修改所有模块.设计思想:使用一个代理将对象包装起来,然后用该代理对象取代原始对象,任何对原始对象的调...原创 2019-10-10 21:16:44 · 213 阅读 · 0 评论 -
设计模式——观察者模式(Observer)
定义概念:观察者模式又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。优点:降低了目标与观察者之...原创 2019-10-11 11:37:44 · 161 阅读 · 0 评论 -
数据库——事务和锁
目录事务(Transaction)乐观锁(Optimistic Lock)悲观锁(Pessimistic Lock)封锁(数据库机制锁)封锁协议死锁(Deadlock)MySQL事务(Transaction)概念定义:事务是恢复和并发控制的基本单位基本特性:ACID(原子性,一致性,隔离性,持久性) 原子性和一致性差不多,意思是要么全部成功,要么就全部...原创 2019-10-06 20:43:20 · 680 阅读 · 0 评论 -
Java——值引用和对象引用
先来看一段代码,猜猜结果是啥:(SonClass中定义了一个public成员变量weight,可通过构造方法赋值) public static void main(String[] args) { String str = "12345"; SonClass aa = new SonClass(10); SonClass bb = new SonClass(12); M...原创 2019-09-12 11:57:49 · 2931 阅读 · 2 评论 -
Java 中类加载、new对象过程中发生了什么?
首先创建一个孩子类:public class SonClass { private int weight; private String str; private Object ob; private static int method;//静态的方法属性——所有对象共享一份,其他人手一份 public SonClass(int weight) { this.weight ...原创 2019-09-11 15:59:12 · 819 阅读 · 2 评论 -
CentenOS7.3安装JDK8
检索包含java的列表yum list java*检索1.8的列表yum list java-1.8*安装1.8.0的所有文件yum install java-1.8.0-openjdk* -y使用命令检查是否安装成功java -version...原创 2019-09-10 11:28:50 · 748 阅读 · 0 评论 -
linux命令——查找文件大小大于1M的文件
查找当前目录下文件大小大于1M的文件:find ./ -type f -size +1M ./当前路径 -type 文件类型 -size 文件大小 +大于 -小于 无 等于查看当前路径:pwd1. find(查找命令)find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>...原创 2019-09-09 18:47:48 · 40431 阅读 · 1 评论 -
杂谈——对计算机网络的一些思考
很多时候我们都照搬书上的网络体系结构图进行记忆理解,但却没有真正将其转化为我们自己的东西,这就很呆板,如何让他生动起来并且真正为我们所用呢?将它代入到我们的实际生活中去理解、思考、应用,这样知识才会成为自己的体系结构中的一部分,做到融会贯通,理解就更深入,这样知识才不会容易忘,即使很久不用有所遗忘,再捡起来也是十分容易的。原创 2019-09-06 23:07:59 · 806 阅读 · 0 评论 -
框架回顾——AOP
实现方式:从以下几个方面来实现AOP:编译器修改源代码; 在运行期字节码加载前修改字节码; 运行期字节码加载后动态创建代理类的字节码;AOP各种实现机制的比较:类别 机制 原理 优点 缺点 静态AOP 静态织入 在编译期,切面直接以字节码的形式编译到目标字节码文件中 灵活性不够,多个接口就需要多个代理类 动态A...原创 2019-09-04 21:15:29 · 514 阅读 · 0 评论 -
基础再巩固——HTML
拿着蓝皮书,对着敲了一遍样例又,发现常用的标签自己太久不用了还是会忘:<!DOCTYPE html><head> <title>index</title></head><body> <a href ="#test">定位到锚点test(锚点的使用)</a> &l...原创 2019-09-03 22:49:21 · 610 阅读 · 0 评论 -
杂谈——对操作系统文件存储的一些思考
文件存储流 buffer (优化全部基于buffer优化---比如NIO 消息传输等)buffer压缩适用对于数据长度不变的数据存储:基本类型:八大基本类型 引用类型:具体看应用场景(数据长度是否变化,比如消息传输)对于Word、PPT等需要动态修改的文件应该如何存储? 我们都知道,对于顺序文件存储,读取是很快的;而对于修改内容的文件,需要内存重分配,所以...原创 2019-09-02 21:42:07 · 630 阅读 · 1 评论 -
Java——线程池
JDK自带的线程池——ThreadPoolExecutor:一、重要参数corePoolSize:核心线程数 核心线程会一直存活,即使没有任务需要执行 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭 queueCapacity:任务队列容量(阻塞队列)...原创 2019-09-17 10:37:20 · 569 阅读 · 0 评论 -
Java——自定义类实现 Linklist,Stack,Queue
目录一、自定义类实现链表二、自定义类实现栈三、自定义类实现队列一、自定义类实现链表1.定义节点的数据类型public class NodeClass<T> { private T Date; //数据 private NodeClass<T> Next; //指针 public T getDate() { return D...原创 2019-09-20 22:12:36 · 794 阅读 · 1 评论 -
Java——类初始化顺序
规律总结:先初始化,再赋初值,在这个基础上:从上往下先执行静态的赋值语句或初始化块,遇到new的时候,从上往下执行非静态的赋值或者初始化块,最后执行构造函数。原创 2019-09-21 19:42:12 · 231 阅读 · 1 评论 -
遗留问题——transient关键字的使用
在通过反射列出一个对象的所有域的字符串形式的测试中,在对结果的比较过程中,遇到了这个关键词修饰的域,有时间再好好研究一下:public class ObjectAnalyzer { private ArrayList<Object> visited = new ArrayList<>(); /** * 将对象转换为 列出所有域的字符串形式 * @p...原创 2019-10-03 20:33:56 · 514 阅读 · 0 评论 -
Java——hashcode和equals小记
首先上结论,在Java中关于hashcode和equals方法的不成文规定:重写equals方法,必须要重写hashcode方法;为什么?因为相等的对象必须具有相等的哈希码。这又是为什么?这就要说到集合了:Java中的集合(Collection)有两类,一类是List,再有一类是Set。前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。这里就引出一个问题:要想保...原创 2019-10-03 16:30:52 · 178 阅读 · 0 评论 -
HTTP状态码小记
目录HTTP状态码:HTTP方法:HTTP1.0 HTTP1.1 HTTP2.0 :HTTP如何实现状态化,cookie被禁用了怎么办(URL重写):HTTP、HTTPS(对称加密+非对称加密+数字证书):HTTP状态码:1XX :信息状态码100 Continue 继续,一般在发送 post 请求时,已发送了 http header 之后服务端 将返回此信息,表示...原创 2019-10-02 20:09:38 · 444 阅读 · 0 评论 -
设计模式——单例模式
目录解决问题:实现方式:使用场景:解决问题:全局使用的类频繁地创建与销毁,为了控制实例数目,节省系统资源;多线程运行的时候,大家共用这一个对象,而不是每个线程都实例化一个对象;如何实现共享?如何保证单例?实现方式: /** * 懒汉式,线程不安全 * 不支持多线程 */ private static ...原创 2019-09-29 18:36:34 · 190 阅读 · 0 评论 -
手写tomcat
tomcat-demo原创 2019-09-26 16:33:58 · 159 阅读 · 0 评论 -
Redis——安装、主从哨兵
Redis安装目录下配置主从服务器:# 使得Redis服务器可以跨网络访问bind 0.0.0.0# 设置密码requirepass "123456"# 指定主服务器,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置slaveof 10.1.1.157 6379# 主服务器密码,注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置masterau...原创 2019-09-24 12:19:15 · 257 阅读 · 0 评论