【推荐】开启三个线程打印ABC-ReentrantLock+Condition

2022-3-8 diaba 多线程

package com.jiucaiyuan.net.thread; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * <p> * 题目: * 编写程序,开启三个线程,这三个线程的ID分别是A,B,C,每个线程将自己的ID在屏幕上打印十次, * 要求输出结果必须按照ABC的顺序显示,如:ABCABCABC... * * 指定线程唤醒轮循打印,使用ReentrantLock和Condition。 本...

阅读全文>>

评论(0) 浏览(1312)

算法——字符串转化为32位有符号整数atoi()

2022-3-5 diaba 算法

package com.jiucaiyuan.net.algrithm.sum; /** * 将一个字符串转化为32位有符号整数,(类似C/C++中的atoi函数) * * @author jiucaiyuan on 2022/3/5. */ public class MyAtoi { public static int myatoi(String s) { char[] chars = s.toCharArray(); int len = chars.length; //去掉空格的情况 ...

阅读全文>>

评论(0) 浏览(1270)

算法——荷兰国旗(数组分区)

2022-3-5 diaba 算法

package com.jiucaiyuan.net.algrithm.sort; /** * 问题(荷兰国旗问题):给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边, * 大于num的数放在数组的右边,要求额外空间复杂度O(1),时间复杂度O(N) * * Created by jiucaiyuan on 2022/3/5. */ public class SplitArrayHeLan { /** * less为小的区域最右侧 * more为大的区域最左侧 * i是扫描整个数组 *...

阅读全文>>

评论(0) 浏览(1175)

算法——归并法排序

2022-3-5 diaba 算法

package com.jiucaiyuan.net.algrithm.sort; /**  * 归并法排序  *  思路:递归处理把数组分成左右两部分,左侧部分排成有序数组,右侧排成有序数组,然后再merge两个数组  *  * 算法时间复杂度是O(N*logN)  空间复杂度O(N)  * * * Created by jiucaiyuan on 2022/3/5. */ public class ReduceMergeSort { public static void sort(...

阅读全文>>

评论(0) 浏览(1229)

算法——快速排序

2022-3-5 diaba 算法

package com.jiucaiyuan.net.algrithm.sort; /**  * <pre>  * 快速排序  *  一个数组arr,选择一个数做为基准m,小于等于m的数放在数组左边,大于m的数放在数组右边  *  左侧递归上述过程  *  右侧递归上述过程  *  *  荷兰国旗问题:  <m,=m,>m  *  * 时间复杂度 O(N*logN),空间复杂度 O(logN)  * ...

阅读全文>>

评论(0) 浏览(1321)

Java位运算符

2022-3-3 diaba Java

Java位运算符有: 左移( << ) 右移( >> ) 无符号右移( >>> ) 位与( & ) 位或( | ) 位非( ~ ) 位异或( ^ ) 除了位非( ~ )是一元操作符外,其它的都是二元操作符 交换两个不等的数方法: //交换两个不相等的数,可以使用「位异或」 a=5; b=6; 通过如下代码: a=a^b; b=a^b; a=a^b; 变为: a==6; b==5; 【注意】如果两个数相等,经过如下代码会得到0 由位运算操作符衍生而来的有: ...

阅读全文>>

评论(0) 浏览(1187)

算法——统计岛数量

2022-3-3 diaba 算法

package com.jiucaiyuan.net.question; /** * 统计岛数量 * 【问题】一个矩阵中只有0和1两个数值,每个位置都可以和自己的上、下、左、右四个位置相连, * 如果有一片1连在一起,这个部分叫做一个岛,求一个矩阵中有多少个岛? * 【进阶】 * 如何设计一个并行算法解决这个问题(一张地图,点特别多,需要统计时,并行解决会更快些) * <p> * P12 11.基础提升 有序表、并查集等 00:03 * * @Author jiucaiyuan 2022/3/2 23:58 * @mail s...

阅读全文>>

评论(0) 浏览(1191)

算法——拿纸牌,最大积分是多少

2022-3-2 diaba 算法

package com.jiucaiyuan.net.question; /** * 拿纸牌,得到最大分数 * 给定一个整形数组arr,代表数值不同的纸牌排成一条线。玩家A和玩家B依次拿走每张纸牌, * 规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左或者最右侧的纸牌,玩家A和 * 玩家B都是绝顶聪明。请返回最后胜利者的分数 * <p> * Created by jiucaiyuan on 2022/3/2. */ public class CardsSelect { /** * 给一个纸牌,拿牌规则,从最左侧或者从...

阅读全文>>

评论(0) 浏览(1204)

算法——是否为平衡二叉树

2022-3-2 diaba 算法

package com.jiucaiyuan.algrithm.tree; /** * 判断树是否为平衡二叉树 * <p> * Created by jiucaiyuan on 2022/2/4. */ public class BalancedTreeSolution { //传递参数 // 1. 传入根节点 // 2. 返回是否为平衡二叉树 public static boolean isBalanced(TreeNode root) { // 退出条件 // 1. 节点为空,则...

阅读全文>>

评论(0) 浏览(1233)

算法——汉诺塔

2022-3-2 diaba 算法

package com.jiucaiyuan.question; /** * 汉诺塔 * <p> * Created by jiucaiyuan on 2022/2/4. */ public class HannuoTower { public static void main(String[] args) { hannuoTower(16); } public static void hannuoTower(int n) { if (n > 0) { move...

阅读全文>>

标签: 算法 汉诺塔 递归

评论(0) 浏览(1434)

常用工具

2022-3-2 diaba 调优命令

demesg可以用来查看开机之后的系统日志,其中可以捕捉到一些系统资源与进程的变化信息。 dmesg dmesg | grep -E 'kill|oom|out of memory' --col top top -Hp pid jps -l 类似linux的 ps -ef 查看进程状态 jstack 进程号 //查看堆栈信息 jstat -gccause 18356 1000 1000 jstat -class 18356 jstat -compiler 18356 jstat -gc 18356 ...

阅读全文>>

评论(0) 浏览(1281)

我已经配置了保险,也推荐给大家

2021-3-24 diaba 随笔记录

     最近投入了好多时间对保险进行了深入研究,加深了对保险的理解,此次研究主要针对保险条款、保险责任相关进行分析,更深入的了解了不同险种的侧重点,我们生活中应该配置哪些产品来武装自己和自己的家庭,以备发生意外时,稳定家庭,最近看到社会上发生的一些意外,很痛心,生活不易,还要受到病痛的折磨......     有些人发生了意外,最大的困难是没有钱治病,现在的医学如此发达,有些根本不是什么疑难杂症,明明是可以治愈的,但是由于没有相应的费用,没有得到及时治疗,真是痛心     深入的了解保险后,找了好多...

阅读全文>>

标签: 理财 保险 抗风险 优秀经纪人

评论(0) 浏览(2471)

程序员给生活加点料

2020-9-25 diaba 随笔记录

2019-08拍摄于坝上          做软件开发这行一晃已经10年有余,向不惑之年进军,心里有个小鼓在敲打,不淡定了。      曾经,看着30岁仍做软件开发的同事,心里还在嘀咕,“我到那个年龄,绝对不能再敲代码了”,一晃,目前30过了好多年,仍然在敲代码,展望也没看到什么时候能不用敲代码,惭愧惭愧...     随着时间一天天的过去,从毕业到现在,看到身边老人或者朋友生病或离去,感觉生命确实很脆弱,...

阅读全文>>

标签: 程序员 坦然生活

评论(0) 浏览(2079)

技术人如何在技术路上走得更稳、更自信

2020-9-23 diaba 随笔记录

         今天面两个候选人,都是程序员,一个是工作1年半的新人,一个是工作8年的老司机。     俩候选人沟通能力都不错,比较擅长沟通,给候选人1点赞,我工作1年时,还不如他,二者都清楚自己所说的内容,也能表述的很贴切,让听的人理解顺畅。     不过沟通下来,两位候选人给人印象差异很大。     候选人1,工作经历比较简单,1年的互联网金融相关经验,工作中使用到的技术比较受局限,但是聊下来,感觉在工作之余,该候选人有投入大量时间在学习和了解技术相关的知识,从ja...

阅读全文>>

标签: 程序员 未来

评论(0) 浏览(2371)

Base64编码与解码

2018-8-28 diaba Java

final BASE64Encoder encoder = new BASE64Encoder(); final BASE64Decoder decoder = new BASE64Decoder(); final String text = "字串文字"; final byte[] textByte = text.getBytes("UTF-8"); //编码 final String encodedText = encoder.encode(textByte); System.out.println(encodedText); //解码 System.out.println...

阅读全文>>

评论(0) 浏览(2845)

Linux命令之grep

2018-3-22 diaba Linux

grep 同时满足多个关键字和满足任意关键字 grep 同时满足多个关键字和满足任意关键字 ① grep -E "word1|word2|word3"   file.txt    满足任意条件(word1、word2和word3之一)将匹配。 ② grep word1 file.txt | grep word2 |grep word3    必须同时满足三个条件(word1、word2和word3)才匹配。

阅读全文>>

标签: grep

评论(0) 浏览(2785)

代码容错性和友好性提示很重要

2017-3-21 diaba 随笔记录

    最近一直在做保险系统,也遇到过各种问题,此问题遇到不知此,在此记录,以备后续查阅。     保险产品的销售不同一般商品的销售,直接维护自己系统的库存等即可,她受到保监会的严格监管,保险产品的销售,等价于保险公司和投保人签订一份合同,签订完如果被保险人或者标的出险后,要按照保险合同(保单)的条款进行理赔。     所以出单过程需要和保险公司系统进行对接,对接过很多保险公司系统,期间遇到各种问题都会出现,可能好多是意想不到的,只有经过后,你的代码才能够健壮,够稳定。 ...

阅读全文>>

标签: 代码优化

评论(0) 浏览(4179)

【转】深度解析Java 8:AbstractQueuedSynchronizer的实现分析(下)

2017-3-10 diaba 多线程

前言 经过本系列的上半部分JDK1.8 AbstractQueuedSynchronizer的实现分析(上)的解读,相信很多读者已经对AbstractQueuedSynchronizer(下文简称AQS)的独占功能了然于胸,那么这次我们通过对另一个工具类:CountDownLatch的分析来解读AQS的另外一个功能:共享功能。 AQS共享功能的实现 在开始解读AQS的共享功能前,我们再重温一下CountDownLatch,CountDownLatch为java.util.concurrent包下的计数器工具类,常被用在多线程环境下,它在初始时需要指定一个计数...

阅读全文>>

评论(0) 浏览(3170)

查看mac下运行后台进程并结束之

2017-3-7 diaba mac

执行以下命令,可以查看tomcat运行进程信息和运行哪个命令运行起来的该任务 ps aux | grep tomcat 可以看到列表中PID,通过以下命令结束该进程: kill -9 3846 通过以下命令可以查看某个端口被占用情况 lsof -i tcp:18080 lsof命令也会罗列PID,也可以结束进程。

阅读全文>>

标签: mac 命令

评论(0) 浏览(4319)

【转】深度解析Java 8:JDK1.8 AbstractQueuedSynchronizer的实现分析(上)

2017-2-21 diaba 多线程

前言 Java中的FutureTask作为可异步执行任务并可获取执行结果而被大家所熟知。通常可以使用future.get()来获取线程的执行结果,在线程执行结束之前,get方法会一直阻塞状态,直到call()返回,其优点是使用线程异步执行任务的情况下还可以获取到线程的执行结果,但是FutureTask的以上功能却是依靠通过一个叫AbstractQueuedSynchronizer的类来实现,至少在JDK 1.5、JDK1.6版本是这样的(从1.7开始FutureTask已经被其作者Doug Lea修改为不再依赖AbstractQueuedSynchronizer实现了,这是...

阅读全文>>

评论(0) 浏览(2842)

Powered by emlog 京ICP备15045175号-1 Copyright © 2022