博文心得
文章平均质量分 91
sunnylovecmc
我不仅生产知识,还是知识的搬运工!让大家都能欣赏到优秀的博文!
展开
-
排名前 16 的 Java 工具类,养眼的整理出来了!
在Java中,实用程序类是定义一组执行通用功能的方法的类。这篇文章展示了最常用的Java实用工具类及其最常用的方法。类列表及其方法列表均按受欢迎程度排序。数据基于从GitHub随机选择的50,000个开源Java项目。希望您可以通过浏览列表来了解已经提供和流行的功能的一些想法,以使您知道不需要自己实现。这些方法的名称通常指示它们的作用。如果方法名称不够直观,您还可以查看其他开发人员如何在其开源项目中使用它们。 org.apache.commons.io.IOUtils closeQuie原创 2020-11-10 17:40:37 · 406 阅读 · 0 评论 -
在MySQL中重复的插入数据怎么办,骚操作!不要再写那么多代码了!
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下:这里为了方便演示,我新建了一个user测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引:01 insert ignore into即插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或原创 2020-11-10 17:27:57 · 5028 阅读 · 0 评论 -
几个IDEA的Sao技巧,效率提升了10倍,网友:没有灵魂!
今天,在网上看到一篇关于作者介绍IDEA技巧的文章,有网友吐槽说,用IDEA写代码没有灵魂!我当场懵逼了~IDEA提供了这么多快捷的方式不用,那还用这种高级编辑器干嘛,干脆用记事本,不就显得更牛逼~作为一位IDEA的死忠粉,我也经常用IDEA的骚技巧~这里,我给各位同学分享一下,我经常用的几个技巧,但不限于这些。1、几个快捷键每次当你打开IDEA的时候,便会给你展现一个欢迎界面,会有4个快捷键,见版本号:2020.2Alt+...转载 2020-09-29 11:38:39 · 179 阅读 · 0 评论 -
Elasticsearch 是做什么的以及它的使用和基本原理
生活中的数据搜索引擎是对数据的检索,所以我们先从生活中的数据说起。我们生活中的数据总体分为两种: 结构化数据 非结构化数据 结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、Word 文档,邮件,各类报表、...转载 2020-09-29 11:34:31 · 1931 阅读 · 0 评论 -
Java 压缩20M文件从30秒到1秒的优化过程
有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去。之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件竟然需要30秒的时间。压缩文件的代码如下。 public static void zipFileNoBuffer() {File zipFile = new File(ZIP_FILE);try..转载 2020-09-29 11:30:56 · 764 阅读 · 0 评论 -
面试命中率90%的点 —— MySQL锁
一、对MySQL的锁的了解当数据库有并发事务的时候,可能会产生数据的不一致,这时候需要一些机制来保证访问的次序,锁机制就是这样的一个机制。就像酒店的房间,如果大家随意进出,就会出现多人抢夺同一个房间的情况,而在房间上装上锁,申请到钥匙的人才可以入住并且将房间锁起来,其他人只有等他使用完毕才可以再次使用。二、隔离级别与锁的关系在Read Uncommitted级别下,读取数据不需要加共享锁,这样就不会跟被修改的数据上的排他锁冲突在Read Committed级...转载 2020-09-29 11:14:47 · 1014 阅读 · 0 评论 -
你的Redis为什么变慢了?常见延迟问题定位与分析
Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。很多时候,Redis出现访问延迟变大,都与我们的使用不当或运维不合理导致的。这篇文章我们就来分析一下Redis在使用过程中,经常会遇到的延迟问题以及如何定位和分析。使用复杂度高的命令如果在使用Redis时,发现访问延迟突然增大,如何进行排查?首先,第一步,建议你去查看一下Redis转载 2020-09-29 11:12:57 · 1242 阅读 · 0 评论 -
为什么 Java 的 main 方法必须是 public static void?
Main 方法是我们学习 Java 编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 的。当然,很多人首先学的是 C 和 C++,但是在 Java 中 main 方法与前者有些细微的不同,它不会返回任何值,为什么 main 方式是 public、static、void,这篇文章尝试去找到一些答案。Main 方法是 Java 程序的入口,记住,我们这里不会讨论 Servlet、MIDlet 和其他任何容器管理的 java 程序,在 java 核心转载 2020-09-29 11:07:05 · 153 阅读 · 0 评论 -
震惊了~某程序员竟然在深夜偷偷在代码里下毒!
目录 一、前言 二、代码有毒! 1. 方法命名 2. 最佳排序 3. 有点烧脑 4. 迷之求和 5. 花里胡哨 6. 数字判断 7. 代码健壮 8. 性能优化 9. 无用日志 10. 耗时遍历 三、总结 一、前言学过的代码记不住?方式不对才记不住,你这么记! Git:上厕所不叫上厕所,叫拉分支! S.转载 2020-09-29 11:04:44 · 371 阅读 · 0 评论 -
Java序列化和反序列化为什么要实现Serializable接口?
最近公司的在做服务化, 需要把所有 model 包里的类都实现 Serializable 接口, 同时还要显示指定 serialVersionUID 的值. 听到这个需求, 我脑海里就突然出现了好几个问题, 比如说: 序列化和反序列化是什么? 实现序列化和反序列化为什么要实现 Serializable 接口? 实现 Serializable 接口就算了, 为什么还要显示指定 serialVersionUID 的值? 我要为 serialVersionUID 指定个什么值?转载 2020-09-28 18:38:48 · 128 阅读 · 0 评论 -
InnoDB中一棵B+树可以存放多少行数据?
InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是4k,而对于我们的InnoDB存储引擎也有自己的最小储存单元——页(Page),一个页的大.转载 2020-09-28 18:33:26 · 391 阅读 · 0 评论 -
运维之美-设置服务别名 ssh命令快速启动 macbook
经常要用ssh登录远程服务器,每次都输入用户名和密码比较麻烦。可以设置一下ssh服务器别名。免秘钥公司用的动态口令,免不了。 需要的自行百度我们可以使用 SSH 默认配置文件来创建 SSH 别名。为此,编辑 ~/.ssh/config 文件(如果此文件不存在,只需创建一个):$ vi ~/.ssh/config添加所有远程主机的详细信息,如下所示:Host m6 HostName a.XXXXXXX.com Port 22 User sunny123--这里换成你自己的用户名Hos原创 2020-05-27 15:45:31 · 362 阅读 · 0 评论 -
使用esotericsoftware高速缓存(ASM)的BeanUtils.copyProperties!高性能!
一、事出有因项目中使用BeanUtils.copyProperties但是其性能又不是很满意,而且阿里发布了阿里巴巴代码规约插件指明了在Apache BeanUtils.copyProperties()方法后面打了个大大的红叉,提示"避免使用Apache的BeanUtils进行属性的copy"。心里确实不是滋味,从小老师就教导我们,"凡是Apache写的框架都是好框架",怎么可能会存在"性能问题"--还是这种猿们所不能容忍的问题。心存着对BeanUtils的怀疑开始了今天的研究之路。二、市面上的原创 2020-05-14 17:18:34 · 5939 阅读 · 0 评论 -
日志被Intellij IDEA 控制台给“吃”了
最近,有同学在群里说,他的IDEA控制台打印的日志超过一定的大小,就会被IDEA 给“吃”掉。这里,统一给大家答疑一下,其实IDEA为了节约资源,对在控制台的日志进行了限制,默认缓冲区的输出日志大小是1024kb,超出这个限制就会被清除,而且还会显示「too much output to process」,其实这个配置我们是可以做修改的。通过Console配置修改来修改,点击 File ->Settings ->editor - >General->Console..转载 2020-05-14 09:58:26 · 6451 阅读 · 0 评论 -
idea下设置springBoot项目热部署(热加载)
近来在使用idea做springboot的项目,但是发现每次修改之后我都需要重新将项目关闭再开启,这样比较繁琐,发现通过热部署的方式让我们可以一边修改我们的项目,然后在页面中直接通过刷新展示出来spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。devtools的原理深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方J转载 2020-05-13 14:38:03 · 6025 阅读 · 2 评论 -
Mac OSX 正確地同時安裝 Python 2.7 和 Python3
Python3 出來了(其實已經出來很久了,暈)!但是還是有很多 library 還是使用 Python2.7,所以要怎麼在 Mac 裡面同時裝這兩個版本,並且和系統所使用的 Python 區分開來呢?今天要寫的是如何第一次就正確安裝好,並且切換預設版本,不在誤用系統的 Python。主要就這幾個步驟而已,不會太困難的(或許有些你本來就裝好了)Step 1 安裝 Xcode Step 2 安裝套件管理工具 Homebrew Step 3 安裝 Python Step 4 設定路徑 $PATH转载 2020-05-12 14:11:16 · 252 阅读 · 0 评论 -
Mac下用brew安装nginx
1. nginxnginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server.从niginx基本介绍上看到Other HTTP server features中有一项:FLV and MP4 streaming;可知nginx也支持流媒体.2. brewbrew又叫Homebrew,是Mac中的一款软件包管理工具,通过b转载 2020-05-11 16:39:18 · 488 阅读 · 0 评论 -
iTerm 2 && Oh My Zsh【DIY教程—亲身体验过程】完美替代教程汇总!
一年前,在搞终端的时候偶然一次机会,让我看到了各种强大的DIY界面,这让我很想去自己搞一个。于是在网上不断的寻找资源,也请教了大多数朋友。最终以失败告终。最近,本人又突然想起当时这件事,于是,决定边做笔记,边尝试当初失败的过程。经过一个晚上的时间,终于DIY出我梦寐以求的效果。先放上最终DIY效果图:DIY效果图下面,我将分步骤讲解我是怎么一步一步完成DIY过程1. 首先下载 iTerm 22. 打开iTerm 23. 输入下面指令安装oh-my-zshcurl -L htt原创 2020-05-09 17:46:00 · 2352 阅读 · 0 评论 -
mac 下安装 nginx 及配置
# brew安装nginx# 安装nginx# 可以用brew很方便地安装nginx.sudo brew install nginx# 启动nginx服务sudo brew services start nginx# 利用http://localhost:8080进行访问, 如果出现如下界面,说明启动成功.### mac 自带的 apache是自启动的,而且是不允许删除 apache 的,所以我们只能采取以下办法解决:关闭apache随系统启动> sudo launchctl u原创 2020-05-09 16:47:00 · 3981 阅读 · 1 评论 -
nginx 的mac的配置参数说明-非常详细!
mac下nginx的配置文件在:/usr/local/etc/nginx/nginx.conf#定义Nginx运行的用户和用户组,来指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行user nobody;#nginx进程数,建议设置为等于CPU总核心数。worker_processes 4;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ],其中debug输出日志最为最详细,而crit输出日志原创 2020-05-09 16:40:23 · 1701 阅读 · 0 评论 -
Freemarker 语法入门
首先,先建议查看此文档FreeMarker在线手册FTL指令常用标签及语法注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析。freemaker注释:<#-- 注释内容 -->格式部分,不会输出?? 判断左侧的变量是否丢失,相当于java中的null的判断,或者这个变量是否未定义。?has_content 非常像??,但是它同时也会对空字符串或空list或空map进行判断。! 用来给变量一个默认值,例如color!”no color”转载 2020-05-09 16:13:27 · 643 阅读 · 0 评论 -
Iterm2 使用技巧 快捷键(mac os)
快捷命令窗口:shift+空格额外附上一计:隐藏iTerm Dock 图标让我们的终端变得更 Cool,让它来无影去无踪。这一步我要 iTerm 启动后不再出现在 Dock 上,打开终端输入下面的命令,然后重启 iTerm。/usr/libexec/PlistBuddy -c "Add :LSUIElement bool true" /Applications/iTerm.app/Contents/Info.plist这个方法是...原创 2020-05-09 10:50:02 · 671 阅读 · 0 评论 -
SublimeText3 常用快捷键!for mac 清晰明了!
符号说明 符号 说明 ⌘ command ⌃ control ⌥ option ⇧ shift ↩ enter ⌫ delete 打开/关闭/前往 快捷键 功能转载 2020-05-09 10:45:47 · 294 阅读 · 0 评论 -
Mac升级10.15 Catalina,根目录无权限 完美解决办法!
方法一:1、进入安全模式 重启按command+R2、使用命令关闭sip进入命令控制台:csrutil disable3、重新启动电脑4、命令台:csrutil status 查看sip状态5、sudo mount -uw /6、killall Finder7、sudo mkdir -p /export/Logs8、cd /export/9、sudo -s10、sudo chown -R huangxuebin /export/方法二: 推荐...原创 2020-05-09 10:44:09 · 17487 阅读 · 6 评论 -
Rainbow Brackets 彩色括号 兼容Solarized Themes日晒主题的配色方案
IDEA同时安装Rainbow Brackets(括号彩色插件)和Material Theme UI(主题插件)后导致,括号彩色不起作用。可以手动配置。如图,依次将颜色修改为以下配色最佳颜色配置方案1Color #1:E6B422Color #2:43A047Color #3:2196F3Color #4:3F51B5Color #5:00897B方案2(稍微亮一些的 配色)Color #1:E8B622Color #2:59DD5DColor #3.原创 2020-05-09 10:41:54 · 3574 阅读 · 0 评论 -
idea 插件的使用 进阶篇--更新!姊妹篇
这里不再赘述插件如何安装了哈!不知道的可以百度,也可以看我的上一篇进阶篇。我的背景图 可以到我的资源里去下载,,,喜欢的可以下载这里补充一下常用的插件, 非常推荐!1、日晒主题 SolarizedThemes by 4lex4 的推荐指数:☆☆☆☆☆推荐理由:日晒主题本身是为vim定制的。后来移植到ide 非常酷! 配色非常耐看。 最近更新 不等号显示,注释不可编辑背景图可是另外的插件设置的哈Background Image Plus + byHNUH...原创 2020-05-09 10:25:28 · 3927 阅读 · 0 评论 -
Mac 相见恨晚的神器-小众-用了就丢不掉的 软件
同类的软件我们只安装一个就够了!每个种类软件只选一个,是我使用了5年mac过程中,反复对比;从同类中选出的我认为最好的一款。选取软件的标准:好看!和mac切合度高最贴近原生!功能丰富满足所有日常!软件小巧不臃肿!软件性能高!有些软件收费??? 别怕!桃花源:https://www.macwk.com/简书:https://www.jianshu.com/p/171f83f2aaef1、日历tinycal 中文名:小历推荐理由:代替原生美观、有节假日显示、有农历2、日程同步...原创 2020-05-08 19:10:27 · 1703 阅读 · 0 评论 -
Java 发送https 的post请求方法
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL;原创 2014-08-27 17:45:36 · 46217 阅读 · 6 评论 -
网络通信:SOCKET, TCP/UDP, HTTP, FTP(温故知新!)
(一)TCP/UDP,SOCKET,HTTP,FTP简析TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP、HTTP、TELNET、SMTP、DNS等协议HTTP是应用层协议,其传输都是被包装成转载 2015-01-19 09:54:05 · 1377 阅读 · 0 评论 -
Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱。 然而在使用的过程中会发现Intellij IDEA也有一些不尽如意的地方,难免会有些不爽:Intellij IDEA 的插件库远不及eclipse的丰富。 mybatis-generator在eclip转载 2015-04-21 09:47:32 · 106767 阅读 · 15 评论 -
Jvm内存空间结构是什么样的?
Jvm内存空间结构是什么样的?原创 2016-10-12 14:19:51 · 864 阅读 · 0 评论 -
JavaScript判断浏览器类型及版本(整理)
你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。 几天前,浏览器家族有刚诞生了一位小王子,就是Google推出的Chrome浏览器。由于Chrome出生名门,尽管他还是个小家伙,没有人敢小看他。以后,咱们常说浏览器的“四大才子”就得改称为“五朵金花”了。 在网站前端开发中,浏览器转载 2016-10-13 21:01:04 · 9180 阅读 · 3 评论 -
前端web页面防截屏水印生成方案(网页水印+图片水印)
前端水印生成方案 前段时间做某系统审核后台,出现了审核人员截图把内容外部扭曲的情况,虽然截图内容不是特别敏感,但是安全问题还是不能忽略。于是便在系统页面上面加上了水印,对于审核人员截图等敏感操作有一定的提示作用。网页水印生成解决方案通过canvas生成水印画布兼容性这里我们用canvas来生成base64图片,通过CanIUse网站查询兼容性,如果在移动端以及一些管理系统...转载 2019-10-09 14:39:10 · 19781 阅读 · 1 评论 -
REDIS与MEMCACHED、mongoDB 的区别 对比
如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。2 Redis支持数据的备份,即master-slave模式的数据备份。3 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。在Redis中,并不是所有的数据都转载 2014-06-27 08:36:34 · 1988 阅读 · 0 评论 -
win7 系统盘如何瘦身! 可整理出4-5G。
1、移走虚拟内存文件到非系统盘 大家都知道,为了加快系统的运行,Windows提供了虚拟内存机制,而在Windows7中,默认是开启这项功能的,而且虚拟内存文件在系统盘。比如一台2G内存的机器,虚拟内存文件大小就是2G,我们完全可以将他移走,为系统盘剩下空间。 具体设置过程: 第一步,右键点击桌面上的我的电脑(Computer),选择属性(Properties)。大家会看到系统关于界面原创 2010-01-09 22:41:00 · 151224 阅读 · 1 评论 -
ibatie 语法 汇总
1、基本语法<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">原创 2014-06-23 08:45:11 · 651 阅读 · 0 评论 -
mongo基本语法 快速上手
db.AddUser(username,password) 添加用户db.auth(usrename,password) 设置数据库连接验证db.cloneDataBase(fromhost) 从目标服务器克隆一个数据库db.commandHelp(name) returns the help for the command转载 2014-06-23 08:37:13 · 797 阅读 · 0 评论 -
java String 转utf-8编码
/** * Get XML String of utf-8 * * @return XML-Formed string */ public static String getUTF8XMLString(String xml) { // A StringBuffer Object StringBuffer sb = new StringBuffer(); sb.append(xml原创 2012-11-20 09:18:39 · 185399 阅读 · 0 评论 -
httpclient 4 使用 几点用法(模拟表单)
HTTP请求HTTP 1.1由以下几种请求组成:GET, HEAD, POST, PUT, DELETE, TRACE and OPTIONS, 程序包中分别用HttpGet, HttpHead, HttpPost, HttpPut, HttpDelete, HttpTrace, and HttpOptions 这几个类创建请求。所有的这些类均实现了HttpUriRequest接口,故可以转载 2012-11-20 09:51:42 · 29393 阅读 · 0 评论 -
httpclient4.2.1最新版连接池配置
public class ConnectionManager { static final int TIMEOUT = 20000;//连接超时时间 static final int SO_TIMEOUT = 60000;//数据传输超时 public static DefaultHttpClient getHttpClient(){ SchemeRegistry schemeReg转载 2012-11-20 09:39:48 · 4181 阅读 · 1 评论