Java
Jin-sir
到死之前,我们都是需要发育的孩子,从未长大,也从未停止生长。就算改变不了这个世界,这个世界也别想将我们改变。
展开
-
CAS的三大问题
CAS的三大问题(1)、经典的ABA问题。(2)、循环CAS带来的CPU性能开销(3)、只能保证一个共享变量的原子操作(1)、经典的ABA问题。在进行CAS操作数据时,会检查原始数据是否被发生改变,如果没有发生改变,则更新数据为期望值,但是如果原始数据是A、期望值是B,数据又被更新成A,这时候,CAS操作就无法确定数据是否被发生了变化,其实,要被更改的数据已经发生变化,由A->B->A。解决ABA问题的思路是对更改数据操作增加版本号,每次对数据操作时,在操作的数据前增加版本号,自动加一原创 2020-12-26 14:39:22 · 806 阅读 · 0 评论 -
判断IP地址是否在指定的IP号段内
在开发项目时,遇到ip白名单是ip地址段的情况,之前只是对某个ip进行拦截匹配,现在要支持ip地址段的匹配,查了好多文章,大致思路就是把ip地址转化成long类型,然后匹配long类型的大小。具体实现方式如下:private static long ip2Long(String ip) { String[] ipArr; double num = 0; if (ip != null && !"".equals(ip)) { ipArr = ip.原创 2020-11-24 22:33:55 · 832 阅读 · 0 评论 -
Java解决Excel导出大批量数据(附上测试代码)
记录一次项目中使用POI导出Excel报错的修改方案。 参考了作者:happyljw的文章 JAVA使用POI如何导出百万级别数据,对代码进行封装扩展。由于项目时间太紧,并未对写的代码进行严格测试,遇到问题的朋友可以一起探讨。 修改结果:100万条数据导出花费58s。比之前效率高多了。package star;import org.apache.poi.ss.usermodel.C...原创 2018-03-03 01:25:46 · 4400 阅读 · 1 评论 -
Mysql死锁
在学习的过程中,遇到了一个问题,MySQL死锁是如何产生的,今天,带着这个疑问来探讨下。什么是死锁?两个线程在互相同时等待对方释放资源。即:进程A战友资源R1,等待进程B占有的资源R2;进程B占有资源R2,等待进程A占有的资源R1.而且资源R1和R2只允许一个进程占用,不能亮哥进程同时占用。结果就是两个进程都不能继续执行,若不采取其他措施,这种循环等待的情况会一直持续下去,就发生了进程死锁。...原创 2019-04-22 17:27:57 · 428 阅读 · 0 评论 -
Android 读取csv文件并转换为java bean
在开发android读取csv文件时,在网上翻来翻去并没有找到一个合适的工具包,然后自己就花了半个小时写了一个。废话不多说,上代码。代码并没有做特殊错误处理,或许有很多欠缺的地方,大家可以参考参考,自己完善。CsvReader.javapackage top.latestwin.osa.common.csv;/*import java.io.*;import java.lang.re...原创 2019-09-23 10:28:55 · 707 阅读 · 0 评论 -
Android 通过java bean 将数据写入csv文件
前几天遇到了将csv文件导入到android应用中的需求,自己运用java反射技术实现了该功能,今天又遇到了将android SQLite数据库中的数据导出到csv文件中并同步到后台服务器中的需求。于是乎,基于上一篇文章Android 读取csv文件并转换为java bean,继续改造代码,让其支持Java Bean导出数据到csv文件中。废话不多说,直接上代码:改造后的CsvField.jav...原创 2019-09-26 13:21:18 · 872 阅读 · 0 评论