随遇而安

随波逐流,随遇而安

额,假装这里有签名...

细说 Java 中的字符和字符串( 一 )

原文出处:BuquTianya一道经典问题Java里的char类型能不能存储一个中文字符?对于这道题,绝大多数的答案都是“可以存储”。给出的原因包括:1.java中的char是unicode存储,unicode编码字符集中包含了汉字,所以可以存储中文;2.java内部其实是使用的UTF-16的编码,所以是支持大部分非生僻汉字的;3.采用Unicode编码集,一个char占用两个字节,而一个中文字符也是两个字节,因此Java中的char是可以表示一个中文字符的;4.Java的char只能表示utf­16中的BMP部分中文字符,不能表示扩展字符集里的中文字符;那么,这个问题的终极答案到底是什么?J......


随遇而安 发表于2018/07/06 18:25:47 101次赏阅 0个点评

细说 Java 中的字符和字符串( 二 )

原文出处:BuquTianya我们上次在《细说Java中的字符和字符串(一)》说了Java中char和中文字符之间的关系,说明了char能不能存储一个中文字符,以及如何判断Java的字符串是否包含中文字符。这次再看一下MySQL数据库中VARCHAR(N)中的N表示什么,什么会限制N的大小。然后,从Java的String源代码分析一下中文字符在Java字符串里是如何存储的。VARCHAR(N)中的N代表什么?和第一篇类似,我们依旧从官方文档寻找最有权威的答案。我们从这里可以找到VARCHAR(N)中N代表什么的答案:https://dev.mysql.com/doc/refman/8.0/en......


随遇而安 发表于2018/07/06 18:25:45 98次赏阅 0个点评

Java 配合 mitmproxy HTTPS 抓包调试

原文出处:漠然今天对接接口,对方给的Demo和已有项目用的HTTP工具不是一个;后来出现人家的好使,我的死活不通的情况;无奈之下开始研究Java抓包,所以怕忘了记录一下……一、mitmproxy简介mitmproxy是一个命令行下的强大抓包工具,可以在命令行下抓取HTTP(S)数据包并加以分析;对于HTTPS抓包,首先要在本地添加mitmproxy的根证书,然后mitmproxy通过以下方式进行抓包:1、客户端发起一个到mitmproxy的连接,并且发出HTTPCONNECT请求2、mitmproxy作出响应(200),模拟已经建立了CONNECT通信管道3、客户端确信它正在和远端服务器会话,......


随遇而安 发表于2018/06/29 12:28:17 2899次赏阅 0个点评

深入Spring Boot:快速集成Dubbo + Hystrix

原文出处:hengyunabc背景Hystrix旨在通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能。Dubbo是Alibaba开源的,目前国内最流行的javarpc框架。本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用。https://github.com/Netflix/Hystrixhttps://github.com/apache/incubator-dubboSpringBoot应用Demo地址生成dubbo集成sprin......


随遇而安 发表于2018/06/29 12:28:16 1521次赏阅 0个点评

Java:关于值传递你需要了解的事情

原文出处:刘文哲我们都知道,在Java中,方法的参数传递永远都是指值传递。让我们来看一看基本类型和集合的参数传递在内存中是如何体现的。原文链接:https://dzone.com/articles/java-pass-by-reference-or-pass-by-value在讨论Java中参数是如何传递之前,我们有必要先弄清楚Java的变量(主要指的是基本类型和对象)是怎么存储在内存中的。基本类型一般都存储在堆栈中;对于Java对象,实际的对象数据存储在堆中,而对象的指针(指向推中的对象)存储在堆栈中。 1.传值vs传引用“传值”和“传引用”分别是什么意思:传值:当方法参数是值传递时,意味着......


随遇而安 发表于2018/06/29 12:28:14 133次赏阅 0个点评

JAVA 同步实现原理

原文出处:winger@文哥Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:确保线程互斥的访问同步代码保证共享变量的修改能够及时可见有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:修饰普通方法修饰静态方法修饰代码块接下来我就通过几个例子程序来说明一下这三种使用方式(为了便于比较,三段代码除了Synchronized的使用方式不同以外,其他基本保持一致)。没有同步的情况packagecom.paddx.test.concurrent;publicclass......


随遇而安 发表于2018/06/29 12:28:12 128次赏阅 0个点评

ERROR 1044 (42000) : Access denied for user ‘root’@’localhost’

原文出处:潇湘隐者从供应商那边接手一个MySQL数据库(数据库版本为5.7.21MySQLCommunityServer(GPL)),在创建账号时遇到了“ERROR1044(42000):Accessdeniedforuser‘root’@'localhost’todatabasexxx”错误,如下所示mysql>grantallonxxx.*toxxx@'192.168.%'identifiedby'xxx';ERROR1044(42000):Accessdeniedforuser'root'@'localhost'todatabase'xxxx'mysql>照理说,root用户......


随遇而安 发表于2018/06/29 12:28:11 72次赏阅 0个点评

ERROR 3009 (HY000) : Column count of mysql.user is wrong

原文出处:潇湘隐者在测试备份还原时,使用XtraBackup还原数据库后,创建一个测试账号时遇到了下面错误: mysql>grantallonhouse.*totest@'192.168.%'identifiedby'test1249';ERROR3009(HY000):Columncountofmysql.useriswrong.Expected45,found43.CreatedwithMySQL50620,nowrunning50721.Pleaseusemysql_upgradetofixthiserror.mysql>因为备份的数据库版本为MySQL5.6.20,目标数据......


随遇而安 发表于2018/06/29 12:28:09 47次赏阅 0个点评

Git 内部原理之 Git 对象

原文出处:彭金金最近在读《ProGit》这本书,其中有一章讲Git的内部原理,写得非常好,读完之后对于Git的理解会提升到一个新的层次。今后,我会写一系列的关于Git内部原理的文章,以帮助读者加深对Git的认识。内容主要参考《ProGit》这本书,但不同的是,我会对内容进行重新组织,以使大家更容易理解。这篇文章的主题的Git对象。从根本上来讲,Git是一个内容寻址的文件系统,其次才是一个版本控制系统。记住这点,对于理解Git的内部原理及其重要。所谓“内容寻址的文件系统”,意思是根据文件内容的hash码来定位文件。这就意味着同样内容的文件,在这个文件系统中会指向同一个位置,不会重复存储。Git对......


随遇而安 发表于2018/06/29 12:28:08 42次赏阅 0个点评

使用 lynis 进行 linux 漏洞扫描

原文出处:暗无天日lynis是一款运行在Unix/Linux平台上的基于主机的、开源的安全审计软件。安装lynis在archlinux上可以直接通过pacman来安装sudopacman-Slynis--noconfirmresolvingdependencies...lookingforconflictingpackages...Packages(1)lynis-2.6.4-1TotalInstalledSize:1.35MiBNetUpgradeSize:0.00MiB::Proceedwithinstallation?[Y/n](0/1)checkingkeysinkeyring[---......


随遇而安 发表于2018/06/29 12:28:06 37次赏阅 0个点评

Git 内部原理之 Git 对象哈希

原文出处:彭金金在上一篇文章中,将了数据对象、树对象和提交对象三种Git对象,每种对象会计算出一个hash值。那么,Git是如何计算出Git对象的hash值?本文的内容就是来解答这个问题。Git对象的hash方法Git中的数据对象、树对象和提交对象的hash方法原理是一样的,可以描述为:header="<type>"+content.length+"\0"hash=sha1(header+content)上面公式表示,Git在计算对象hash时,首先会在对象头部添加一个header。这个header由3部分组成:第一部分表示对象的类型,可以取值blob、tree、commit以分别......


随遇而安 发表于2018/06/29 12:28:04 34次赏阅 0个点评

MySQL 状态变量 Aborted_connects 与 Aborted_clients 浅析

原文出处:潇湘隐者关于MySQL的状态变量Aborted_clients&Aborted_connects分别代表的意义,以及哪些情况或因素会导致这些状态变量变化呢?下文通过实验测试来验证一下,首先我们来看看状态变量的描述:AbortedConnectAbortedConnect表示尝试连接到MySQL服务器失败的次数。这个状态变量可以结合host_cache表和其错误日志一起来分析问题。引起这个状态变量激增的原因如下: 客户端没有权限但是尝试访问MySQL数据库。客户端输入的密码有误。 Aconnectionpacketdoesnotcontaintherightinformatio......


随遇而安 发表于2018/06/29 12:28:02 37次赏阅 0个点评

Git 内部原理之 Git 对象存储

原文出处:彭金金在Git内部原理之Git对象哈希中,讲解了Git对象hash的原理,接下来的这篇文章讲一讲Git对象如何存储。原理数据对象、树对象和提交对象都是存储在.git/objects目录下,目录的结构如下:.git|--objects|--01||--55eb4229851634a0f03eb265b69f5a2d56f341|--1f||--7a7a472abf3dd9643fd615f6da379c4acb3e3a|--83|--baae61804e65cc73a7201a7252750c76066a30从上面的目录结构可以看出,Git对象的40位hash分为两部分:头两位作为文件......


随遇而安 发表于2018/06/29 12:28:01 23次赏阅 0个点评

linux 如何更改网卡 MAC 地址

原文出处:暗无天日查看网卡MAC地址使用ip命令就能查看MAC地址了:iplinkshow${interface}2:enp0s25:<NO-CARRIER,BROADCAST,MULTICAST,UP>mtu1500qdiscfq_codelstateDOWNmodeDEFAULTgroupdefaultqlen1000link/etherf0:de:f1:ad:1d:f0brdff:ff:ff:ff:ff:ff其中 link/ether 后面那一串用 : 分割的6字节十六进制数就是网卡的MAC地址了,也就是 f0:de:f1:ad:1d:f0手工修改MAC地址使用ip命令也能修......


随遇而安 发表于2018/06/11 18:25:39 206次赏阅 0个点评

Spring Boot 自动配置的 “魔法” 是如何实现的?

原文出处:sylvanassunSpringBoot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数用户平时习惯设置的配置作为默认配置)的功能来为用户快速构建出标准化的应用。SpringBoot的特点可以概述为如下几点:内置了嵌入式的Tomcat、Jetty等Servlet容器,应用可以不用打包成War格式,而是可以直接以Jar格式运行。提供了多个可选择的”starter”以简化Maven的依赖管理(也支持Gradle),让您可以按需加载需要的功能模块。尽可能地进行自动配置,减少了用户需要动手写的各种冗余配置项,SpringBoot提倡无XML配置文件的理......


随遇而安 发表于2018/06/11 18:25:37 194次赏阅 0个点评

JDK 源码阅读 : FileDescriptor

原文出处:木杉的博客操作系统使用文件描述符来指代一个打开的文件,对文件的读写操作,都需要文件描述符作为参数。Java虽然在设计上使用了抽象程度更高的流来作为文件操作的模型,但是底层依然要使用文件描述符与操作系统交互,而Java世界里文件描述符的对应类就是FileDescriptor。Java文件操作的三个类:FileIntputStream,FileOutputStream,RandomAccessFile,打开这些类的源码可以看到都有一个FileDescriptor成员变量。注:本文使用的JDK版本为8。FileDescriptor与文件描述符操作系统中的文件描述符本质上是一个非负整数,其中......


随遇而安 发表于2018/06/07 14:52:15 2710次赏阅 0个点评