- 博客(40)
- 资源 (4)
- 收藏
- 关注
原创 JAVA IO 通俗解释
以网购之后到货为例简单解释JAVA各IO模型: 阻塞 IO 模型:付款完了什么也不干,自己不断问货物是否到了,直到货物到了拿了快递再去做别的事儿。(效率很低,用户线程直接阻塞) 非阻塞 IO 模型:买完了自己每隔一段时间就去问一下货物是否送到了,问询的间隔期间可以暂时去干别的事儿。(用户线程仍被大量问询操作占用) 多路复用 IO 模型(NIO):托一个专人去帮自己不断地问货物是否送到了,一个小区可能有很多像我这样的人,这个专人可以帮所有客户询问到货情况。这期间我可以去做别的事儿。如
2020-06-21 17:52:49
374
原创 Java序列化:Serializable 和 Externalizable 接口
测试类:Player 和 Weapon 都实现了Serializable接口(成员变量引用的类也必须实现了Serializable接口)public class Player implements Serializable { private static final long serialVersionUID = -75L; private String name; private int level; private Weapon weapon;
2020-06-21 01:12:50
335
原创 JAVA引用传递、浅拷贝、深拷贝
测试类:Player类,包含name level 和 weapon 三个成员public class Player implements Cloneable { private static final long serialVersionUID = -75L; private String name; private int level; private Weapon weapon; public Player(){ na...
2020-06-21 00:10:27
315
原创 Disconf原理--简要总结
简单把源码过了一遍,总结使用@DisconfFile和@DisconfFileItem注解相结合情况下的Disconf-Client的执行过程、原理配置类定义如下:/** * @author sam */@Service@Scope("singleton")@DisconfFile(filename = "uvb76.properties")public class Prop...
2020-04-19 17:05:47
743
原创 Git学习笔记——4、未提交前文件的回退操作
以下按使用场景来总结说明1. 新建文件暂存后撤销在项目目录下新建version.md文件,将文件暂存,状态如下:可以看到version.md是new file的状态。通过命令行的输出,我们知道可以使用git reset HEAD + 文件名来撤销刚才的暂存:OK,这样回到了我们暂存version.md之前的状态2. 已提交过的文件的回退已提交过的文件是指,该文件已进行过...
2020-01-06 23:16:45
1335
原创 Git学习笔记——3、文件的新建、暂存、提交及重新提交
本文在不考虑分支的情况,以game文件夹为例,来实际演示git操作1. 初始化本地库假如我们的项目是game,新建并进入game目录,我们先执行git status命令,如图:诶,严重错误:不是一个git仓库执行git init命令,再次git status,如下:有变化了,提示告诉我们已完成初始化,目前仓库还没有提交呢。查看game目录里面,发现多了个隐藏文件夹:.git...
2019-11-27 17:39:56
656
原创 Git学习笔记——2、文件状态
刚工作使用SVN的时候,基本没有考虑过文件的状态,以为无非是检出、提交、撤回,对版本控制理解的不够深入,其实SVN和Git一样,也有add相关操作。Git文件状态的转换Git下每个文件状态分为4个阶段:未追踪(Untracked):未加入Git索引时的状态暂存(Staged):文件的变更已进入暂存区,此时可提交到库中已修改(Modfied):文件相较于上一次已提交时已被修改已提交...
2019-11-21 15:07:22
254
原创 mac终端优化改造
下载iterm2地址https://www.iterm2.com/升级macOS Catalina后,默认启用zsh,不用单独安装。安装oh my shsh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"安装PowerLinesu...
2019-11-13 10:34:00
782
原创 【蓝天准系统 + 970M + WIN10】此nvidia驱动程序与此windows不兼容
问题背景:P151SM蓝天准系统,蓝天版970M前一个月安装了WIN10大更新后,原有的驱动(3XX.15的)失效了,进入游戏后,无法调用独显。使用GeForceExperience无法检测到新驱动。手动下载最新的Nvidia驱动,安装失败。这个问题网上有很多小伙伴们遇到,你们是不是各种百度,但是还是无法解决,气的骂娘?首先说一下网上比较多的两个大法:1、升级Win...
2019-09-11 01:02:33
18661
20
原创 Mysql 应用CASE WHEN 语句条件计算的一个实例
业务需求描述:现有核减费用表edu_syn_hd_ded(ID SERVICECODE CUTTYPE CUTFEE )列定义:ID 服务号 核减类型 核减费用。有核减规则:1. 类型是01的,核减费用要除以0.35的比例,2. 其他类型的,不用做处理直接计算现需要:需要统计服务号为 102701 的业务的核减总费用分析:首先考虑如果没有...
2018-12-28 16:57:20
1238
原创 微信小程序安卓系统下不显示BASE64图片问题
<image>标签中的data属性必须写为:image/png不能是img/png 或者是jpg等其他格式 that.setData({ captchaImage: 'data:image/png;base64,' + res.data});否则,在IOS下没问题,安卓下集体出BUG! ...
2018-12-28 16:11:08
1405
原创 Mysql case when 语句不兼容only_full_group_by问题解决记录
问题背景: 项目执行 case when + group by 的语句运行报错:[2018-12-26 17:50:15] [42000][1055] Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'paydata.edu_syn_hd_ded.CUTT...
2018-12-27 10:42:33
675
2
原创 微信小程序https端口指定(非443)
安全域名需登陆测试号管理页面来配置,具体的https证书要求请参照官方文档去制作并配置好。小程序默认请求是443端口,如果需指定端口号,域名后直接跟端口号即可,如图:js里面url写法如下即可: ...
2018-12-14 14:44:01
23370
5
原创 微信小程序Base64图片不显示(Base64串存在换行问题)
背景小程序内用wx.request来发请求,后台返回Base64流,前台用<image>标签显示。简略代码如下:File tfile = new File("/Users/sam/Downloads/test.jpg"); FileInputStream fileInputStream = new FileInputStream(tfile);...
2018-12-14 11:19:27
7793
1
原创 5分钟看懂脏读、不可重复读和幻读
讲事务隔离机制的文章看了不少,觉得有些文章写的确实难以理解,造成不少理解偏差。这篇文章以大白话来解释。下面举例说明脏读,不可重复读,幻读:(以A君买STEAM的游戏的例子来说)脏读在Read Uncommitted级别下存在,使用Read Committed级别以解决大白话解释:事务A未提交时,事务B就读了事务A未提交的数据举例:A君准备买了一款新游戏,填写了购买申请,但是犹...
2018-12-06 17:49:06
1399
3
原创 SSHD服务指定端口号
需要修改/etc/ssh/sshd_config,注意不是ssh_config,sshd指服务端守护程序(deamon),ssh是指客户端。如图:重启SSHD服务生效。service sshd restart
2018-12-06 14:54:16
1483
原创 Sftp之ChrootDirectory主目录权限的配置
背景交代:CentOS6.5搭建SFTP,按照教程配置 + 重启SSHD服务,之后用sftp命令试验登陆,用户名为paymentftp 报错信息如下:[root@BILLING86 local]# sftp paymentftp@127.0.0.1SSH warring: Authorized users only. All activity may be monitored a...
2018-12-03 16:11:04
16737
2
原创 macOS下JDK11安装及环境变量配置总结
1. 安装不多说,去官网下载https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.htmltar包或者dmg,二者区别在于:tar你自己解压,放在你想要的地方(配置JAVA_HOME的时候是你自己选的位置!) dmg会把JDK一键安装到 /Library/Java/Java...
2018-11-28 16:50:46
18673
4
原创 CentOS6.5升级OpenSSH7.9p1
1. 安装telnet(安装要停用SSHD,在编译安装过程中需要用telnet方式连接server):yum -search telnet找出了一堆,但我们要安装server版的yum -y install telnet-server.x86_64 2. telnet的配置及启动修改telnet的配置,修改disable属性为novim /et...
2018-11-20 16:58:08
1897
原创 SpringMVC WebMvcConfigurerAdapter已过时的解决方法
Spring5.0之前,拦截器配置都是直接继承WebMvcConfigurerAdapter的,从5.0之后,这个类已废弃,源码中注释如下:/*** An implementation of {@link WebMvcConfigurer} with empty methods allowing* subclasses to override only the methods they'...
2018-11-20 10:22:09
2122
原创 IDEA修改项目JDK编译版本
需要修改不止一处:模块选项中的两个标签页:IDEA属性页面的java编译器选项卡:默认JDK版本的设置对于编译版本的修改没有用,仅是新建模块时会代入选项(一开始用IDEA时可是坑死我了):...
2018-11-14 17:25:38
12607
原创 Java8新特性之default关键字学习
先谈一谈抽象类和接口的区别抽象类可看做是不可实例化的普通类,可以拥有构造方法,可以有main方法抽象类中的方法可以是抽象方法(抽象方法必须存在于抽象类中),也可以是普通方法、静态方法可以声明变量,不是必须赋初值。抽象类可以继承其它类,也可实现接口抽象类的派生类,必须覆盖父类中abstract修饰的所有方法接口接口仅可继承其他接口,不可继承其它类或实现另外的接口...
2018-11-14 16:33:45
419
原创 Java重载、重写、覆盖、隐藏的总结
重载Overloading发生要素如下:1. 在同一作用范围内(同一个类,同一个接口)2. 方法名必定相同3. 形参组成不同(类型、个数均不相同 or 个数相同但类型不同 or 类型相同个数不同)错误的认识:1. 方法名相同,形参组成完全相同,返回类型不同也算重载(方法重载要求方法具有不同的签名:形参组成,而返回值并不算作签名内容,故不参与重载的选择)2. abstr...
2018-11-13 18:22:05
3411
1
原创 Oracle新建表空间、新建用户、授权
新建临时表空间create temporary tablespace test_temptempfile 'C:/oracle/oradata/TFServer/test_temp.dbf'size 500mautoextend onextent management local;新建表空间create tablespace testloggingdataf...
2018-11-13 10:22:22
365
原创 Java微型浏览器——HttpClient 4.5.6简要学习总结
原料:MAVEN导入 <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId>...
2018-11-07 10:50:13
2912
原创 linux解压命令总结(zip,tar.gz tar.xz tar.lz)
tar & tar.gztar -xvf abc.tartar -xvf abc.tar.gztar.lzlzip -dv abc.lz 得到 abc.tar 再继续解压tar.xz(压缩比牛逼啊,320M的mysql安装包解压后为1.87G)xz -dv abc.xz 得到 abc.tar 再继续解压或unxz -v abc.xz 得到 ...
2018-10-24 17:27:05
5045
原创 tomcat8-管理员账户设置指南(解决权限已设置仍然报403错误)
新用户添加:修改 ${CATALINA_BASE}/conf/ 目录下的 tomcat-users.xml 文件,重启tomcat后生效,例:<user username="test" password="chang3m3N#w" roles="admin-script"/>管理主页:分为:服务器状态、APP管理、host管理 账户权限说明:t...
2018-10-24 16:03:19
2686
原创 SpringBoot项目jar方式运行自动终止解决
SpringBoot项目通过jar包方式运行,命令如下:java -jar abc.jar一段时间后访问报404,查看日志,进程被自动停止了,没有报错。解决方案:改用nohup方式启动运行(后台方式,不响应系统的挂断信号)nohup java -jar abc.jar&在jar包同级目录会生成log:nohup.out (和SpringBoot里面配置的l...
2018-10-23 17:18:41
3720
1
原创 CentOS6.5快速搭建MySQL8.0.12(tar包方式)
1. 官网下载资源服务器yum方式太慢了,所以选用tar包解压方式,有压缩和未压缩的两种,大小不一样,我下载的是xz包解压命令:xz -d abc.tar.xz 解出的tar包继续执行:tar -xvf abc.tar如提示xz没安装:yum -y install xz2. 参考文档初始化(参考官方refman8.0-en文档2.2节)首先执行:groupa...
2018-10-19 10:52:14
1068
原创 macOS Mysql5.7升级Mysql8(解决mysql.infoschema不存在的问题)
首先提醒大家,拷贝data文件夹有风险!数据无价,建议还是dump数据再restore!旧版本是5.7,到官网 https://dev.mysql.com/downloads/ 下载8的dmg包,安装(在版本8的安装过程中需要设置root账户的密码,注意记录好!)。以dmg包方式安装的mysql,根目录在/usr/local下面,可以看到一个“mysql”的替身,指向实际的mysql安装目...
2018-09-12 16:20:22
6631
原创 Mybatis批量插入注解方式示例(oracle + mysql)
场景:导入20万条数据,for循环方式一条条插入巨慢(太low)。拼接长SQL的话,oracle根本无法支持(有SQL长度限制),经测试数据多于2000基本就不行了。故改用批量插入,在mapper中注解使用mybatis的foreach标签写。Mybatis框架会自动拼接生成批插的sql。mysql版(这里只写2个字段,大家自己照葫芦画瓢) @Insert( ...
2018-08-31 15:30:29
1920
4
原创 hikari连接池T4CPreparedStatement.isClosed()Z is abstract错误解决
项目是springBoot2.0的,原先使用druid连接池,后换用hikari连接池自己学习,启动项目OK不报错,但每次dao层访问数据库就报500,T4CPreparedStatement.isClosed()Z is abstract 日志如下:项目使用的是ojbdc14(14指的是1.4,并不是说比ojdbc8要新),jdk1.4时代的产物,升级一下看看问题能否解决。M...
2018-08-31 10:21:43
2333
原创 MAVEN安装jar到本地仓库(macOS版)
场景: 项目需要ojdbc6的jar包,由于版权问题,maven中央仓库已经不提供包的下载了,在仓库检索出来的pom均不能使用,故需手动安装到本地仓库。命令: mvn install:install-file -Dfile=/Users/sam/ojdbc6-12.1.0.2.jar -DgroupId=com.oracle -DartifactId=ojdbc6 ...
2018-08-30 17:58:44
1105
原创 Oracle远程无法连接(但本机访问正常)问题解决
场景:两台笔记本接入同一个路由器,其中一台A机器(WIN)搭建数据库,另一台B机器(OSX)跑项目通过局域网访问数据库。早上重新开机后,B机器就怎么也连接不上数据库了,能ping通,通过nc命令测试端口无响应:nc -z 172.20.10.5 1521,但测试A机器的其他端口均正常,如下图:在A机器上使用PLSQL可以连接本机测试库,故判定是ORACLE监听出了问题。解...
2018-07-24 17:18:48
24494
原创 Oracle11.2.0 ORA-01034及 ORA-27101错误排查记录
1个月没登录,自己的搭建的测试库就访问不了了,首先使用PLSQL登陆,提示“无监听程序”,通过服务管理,看到TNSListener服务未启动,手工启动报出“本地计算机上的XXX服务启动后停止,某些服务在未由其它服务或程序使用时将自动停止” 。经搜索资料,排查Tnsnames.ora文件,查看ADDRESS_LIST列表中是否有失效或者访问不到的IP地址,确实有旧的内网IP失效了,还写在文件中,...
2018-07-18 18:01:54
834
原创 QT4.5.2移植MC100环境搭建步骤
我的MC100开发板为项目组定制,基于飞思卡尔MX53 cpu,比较少见 系统用的ubuntu 9.10 32位虚拟机 其他开发板可以参考我的做法 很久之前写的了,可能有些错误,欢迎大家指正 1、获取源码包: 在:http://www.qtcn.org/bbs/read.php?tid=1075 (QTCN社区)下载 : q
2013-09-04 16:35:00
793
转载 正则表达式
正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工
2013-08-29 12:59:45
386
转载 new与malloc区别
1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于ma
2013-08-29 12:40:34
558
rfc7230-7235文档
2018-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人