随笔分类 - java
java相关
摘要:Mac电脑maven安装与配置
1.下载:http://maven.apache.org/download.cgi
2.安装:解压下载好的maven的文件,解压到你想要的文件夹下。
3.配置:打开终端输入命令 sudo vim ~/.bash_profile (编辑环境变量配置文件)
在环境变量文件中加上如下的配置export MAVEN_HOME=maven文件夹路径
export MAVEN_HOME=/Users/zheng/workspace/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
阅读全文
摘要:mysql数据库表上百万记录优化思路杂谈
我的mysql数据库表上百万记录,插入数据的时候超慢,插入一笔都差不多将近1秒钟了
有没有做索引?数据量大了一般要做分区分表处理的,实时性要求高的一般要做缓存或者数据总线分层处理的
你用的是不是ssd硬盘?ssd硬盘比机械硬盘快很多倍。
数据库光靠调参数,以经提升到最快0.007秒多一笔插入的速度了
看来还是大数据技术比较重要
调整了那些参数提升这么多?
调了很多参数,mysql、springboot、shardingsphere、druid
可能需要评估一下如何加入Hadoop来进行存储及处理区块链的数据
阅读全文
摘要:Java打印输出数组的三种方式:传统的for循环方式,for each循环,利用Arrays类中的toString方法
int[] arr = {1,2,3,4,5,6};
System.out.println(Arrays.toString(arr));
输出:[1, 2, 3, 4, 5, 6]
阅读全文
摘要:java返回字符串去重后的个数高效的方法,HashSet自动去重,把字符串用toCharArray转换成char数组,for循环再用String.valueOf转成string放入set,返回set的size即可。
阅读全文
摘要:对各种开发语言优劣的讨论,入门难度,IDE,大型网站并发性,java,golang,php,python,api接口,前后端分离
现在很多有高并发要求的 java c++的接口改成golang的
有个朋友公司就是把java写的接口改成golang的,听他说的是效率提高了上百倍,节省了大量服务器
java入门比较难,要达到熟练独立开发一个网站出来需要比较长的学习时间
php Python入门很容易,要做大型网站深入也很难
php Python零基础一星期就可以入门了
java你搞一个月门都没有找到
php做个小网站还是比较快的
Python做个小工具还是很好的,一个文件就可以直接运行起来了
金融相关的用java比较多,比较成熟了,招人也容易
现在流行前后端分离了
golang java 做API接口更有优势的
Python做科学计算,自动化,人工智能的更有优势
springboot springcloud 做API还是很不错的,之前的tomcat 那些容器搞得太复杂了
阅读全文
摘要:java List ArrayList倒序
用Collections.reverse(mylist)即可。如:
List mylist = new ArrayList();
mylist.add("a");
mylist.add("b");
mylist.add("c");
Collections.reverse(mylist);
for (String string : mylist) {
System.out.println(string);
}
阅读全文
摘要:中国爬虫违法违规案例汇总github项目介绍
GitHub - 本项目用来整理所有中国大陆爬虫开发者涉诉与违规相关的新闻、资料与法律法规。致力于帮助在中国大陆工作的爬虫行业从业者了解我国相关法律,避免触碰数据合规红线。
阅读全文
摘要:centos通过yum快速安装JDK1.8
检索1.8的列表:
yum list java-1.8*
安装1.8.0的所有文件:
yum install java-1.8.0-openjdk* -y
出现 Complete!表示安装完成
使用命令检查是否安装成功:
#java -version
不需要对path进行手动设置,已自动设置好了
yum install 了之后,java 是默认下载到 /usr/lib/jvm/ 这个目录下。
# find / -name 'java'
其中启动命令需要用到的两个是:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64/jre/lib/ext
阅读全文
摘要:模拟退火算法SA原理及python、java、php、c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径
模拟退火算法(Simulated Annealing,SA)最早的思想是由N. Metropolis等人于1953年提出。1983 年,S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。
来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
它是基于Monte-Carlo(蒙特卡洛)迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。
常用的智能优化算法
遗传算法(Genetic Algorithm, GA)
模拟退火算法(Simulated Annealing, SA)
禁忌搜索算法(Tabu Search, TS)
神经网络 (Neural Network)
蚁群算法(Ant Colony Optimization,ACO)
爬山
阅读全文
摘要:Java执行shell脚本并返回结果两种方法的完整代码
简单的是直接传入String字符串,这种不能执行echo 或者需要调用其他进程的命令(比如调用postfix发送邮件命令就不起作用)
Runtime.getRuntime().exec(shell);
执行复杂的shell建议使用String[]方式传递(对外可以封装后也传入String字符串)。
Process process = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",shStr},null,null);
阅读全文
摘要:Linux中用postfix搭建邮件服务器实战详解
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。
Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性,因此它是免费的。
postfix的产生是为了替代传统的sendmail。相较于sendmail,postfix在速度,性能和稳定性上都更胜一筹。
现在主流邮件服务都在采用postfix. 当需要一个轻量级的的邮件服务器时,postfix也是一种选择。
常见的邮件服务器软件:
sendmail:性能好,设置复杂,适合老手
qmail:体积小260+k ,模块化。需要做二次开发,适合对邮件性能有要求的
postfix:前身是sendmail,postfix原本是sendmail里面的一个模块,红帽6默认安装好postfix
zmailer:近几年才出来的邮件
coremail:国内做的最好的商业平台,运行在linux上
要用java调用shell命令发送邮件请看本人另外一篇博客:
Java执行shell脚本并返回结果两种方法的完整
阅读全文
摘要:不要在 MySQL 中使用“utf8”,请使用“utf8mb4”
问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。
“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。
MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。
当然,他们并没有对新的字符集广而告之(可能是因为这个bug让他们觉得很尴尬),以致于现在网络上仍然在建议开发者使用“utf8”,但这些建议都是错误的。
在这个不合法的字符集发布了之后,MySQL就无法修复它,因为这样需要要求所有用户重新构建他们的数据库。最终,MySQL在2010年重新发布了“utf8mb4”来支持真正的UTF-8。
阅读全文
摘要:在具体的做法上,一般分为DNS劫持和HTTP劫持。
处理办法: 1、先对外网做检测,上报被劫持的情况。5、当然,最终,根本解决办法是使用HTTPS,不过这个涉及到很多业务的修改,成本较高。如果劫持比例小,也许通过适当的补救做法会更好。
各种劫持的手段都有:
1、直接返回一个带广告的HTML;
2、在原html中插入js,再通过js脚本安插广告;
3、iframe展示原来正常网页。
阅读全文
摘要:抓取网页报403错误,爬虫解决403禁止访问错误方法
一般就是被禁止了,加上对应的header参数就可以了,要具体分析正常访问时需要那些头信息
其中User-Agent是浏览器特有的属性,通过浏览器F12调试器就可以看到
阅读全文
摘要:把object转成JSONObject ,JSONObject json = (JSONObject) JSON.toJSON(o);
阅读全文
摘要:Maven依赖中的scope详解 项目中用了在eclipse里面用maven install可以编译成功,到服务器上用命令执行报VM crash错误,原因是test代码提交上去了,但没有对应的junit包导致的
解决办法:1.服务器上编译的时候排除掉test代码。2.把改成
阅读全文
摘要:springboot maven项目,为什么build成功,build path也没错误,project-->clean 也没用,项目上面还是有个红x呢?
看错误信息有提示:
Description Resource Path Location Type
Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix. sendemail line 1 Maven Configuration Problem
解决办法: 右键项目 maven-->update project 后就可以了
阅读全文
摘要:springboot用@Autowired和@PostConstruct注解把config配置读取到bean变成静态方法
public static Configs conf;
@Autowired
private Configs conf2;
@PostConstruct
public void initconf() {
conf = conf2;
}
阅读全文
摘要:ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088)
查看docker的activemq版本命令:
$ docker ps | grep activemq
927860512db9 rmohr/activemq:5.15.4-alpine
从上面可以看到版本是activemq:5.15.4-alpine 在该漏洞修复版本之上,不用担心了。
阅读全文
摘要:activemq消息队列的使用及应用docker部署常见问题及注意事项
docker用https://hub.docker.com/r/rmohr/activemq/
配置在/data/docker/activemq/conf
重启命令:docker restart activemq
查看进程:docker ps | grep activemq
要改activemq的默认配置:
用持久化消息,开启事务模式,将临时文件限制尽可能的调大。
将prefetch设为1,每次处理1条消息,处理完再去取
自己发送消息的逻辑代码,要在方法里加上try catch,避免因程序逻辑错误导致重连才行
阅读全文