算法——快速排序

2022-3-5 diaba 算法

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

阅读全文>>

评论(0) 浏览(1027)

Java位运算符

2022-3-3 diaba 基础

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

阅读全文>>

评论(0) 浏览(1008)

算法——统计岛数量

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) 浏览(992)

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

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) 浏览(1009)

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

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) 浏览(1023)

算法——汉诺塔

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) 浏览(1020)

常用工具

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) 浏览(929)

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

2021-3-24 diaba 随笔记录

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

阅读全文>>

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

评论(0) 浏览(2166)

程序员给生活加点料

2020-9-25 diaba 随笔记录

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

阅读全文>>

标签: 程序员 坦然生活

评论(0) 浏览(1755)

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

2020-9-23 diaba 随笔记录

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

阅读全文>>

标签: 程序员 未来

评论(0) 浏览(1925)

Base64编码与解码

2018-8-28 diaba 基础

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) 浏览(2604)

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) 浏览(2550)

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

2017-3-21 diaba 随笔记录

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

阅读全文>>

标签: 代码优化

评论(0) 浏览(3749)

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

2017-3-10 diaba 多线程

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

阅读全文>>

评论(0) 浏览(2969)

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

2017-3-7 diaba mac

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

阅读全文>>

标签: mac 命令

评论(0) 浏览(4056)

【转】深度解析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) 浏览(2649)

【转】从根源上解析 Java volatile 关键字的实现

2017-2-21 diaba 多线程

1、解析概览 内存模型的相关概念 并发编程中的三个概念 Java内存模型 深入剖析Volatile关键字 使用volatile关键字的场景 2、内存模型的相关概念 缓存一致性问题。通常称这种被多个线程访问的变量为共享变量。 也就是说,如果一个变量在多个CPU中都存在缓存(一般在多线程编程时才会出现),那么就可能存在缓存不一致的问题。 为了解决缓存不一致性问题,通...

阅读全文>>

评论(0) 浏览(2611)

spring-BeanCreationException

2017-2-16 diaba Spring

服务错误异常log: HTTP Status 500 - Servlet.init() for servlet applicationContext threw exception type Exception report message Servlet.init() for servlet applicationContext threw exception description The server encountered an internal error that prevented it from fulfilling this...

阅读全文>>

评论(0) 浏览(3205)

Git-命令大全

2017-2-16 diaba 工具使用

git log --name-status -8                   //查看日志,显示最近8条,每条修改的明细也显示 删除本地分支 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Monaco; color: #f4f4f4; background-color: #000000; background-color: rgba(0, 0, 0, 0.85)} span.s1 {font-var...

阅读全文>>

标签: git

评论(0) 浏览(2355)

【转】JVM原理讲解和调优

2017-2-15 diaba JVM

一、什么是JVM     JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。     Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言...

阅读全文>>

评论(0) 浏览(3185)

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