上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 49 下一页

2021年1月24日

Java 基础 - java中的byte类型

摘要: 总结 1.为何byte的取值范围是[-128, 127] byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数。所以byte类型的取值范围也是[-128, 127]。 Java规定,用[1000 0000]补表示-128: (-1) + (-127) = [1 阅读全文

posted @ 2021-01-24 11:57 frank_cui 阅读(652) 评论(0) 推荐(0)

2021年1月19日

Goldman Sachs

摘要: https://medium.com/@hch.hkcontact/goldman-sachs-top-50-leetcode-questions-q7-high-five-a933247c219a Coderpad describe how to implement HashMap Impleme 阅读全文

posted @ 2021-01-19 20:36 frank_cui 阅读(937) 评论(0) 推荐(0)

2021年1月15日

设计模式 - 单例模式

摘要: 1.【不好的解法】只适用于单线程环境 缺陷:当两个线程同时执行到 if (instance == null) 时,两个线程均会创建一个实例 //只适用于单线程环境 public class Singleton{ //将无参构造函数私有化,避免外部自行初始化 private Singleton(){} 阅读全文

posted @ 2021-01-15 15:34 frank_cui 阅读(90) 评论(0) 推荐(0)

2021年1月9日

算法 - 三路快排(分为三部分 小于/等于/大于)

摘要: https://www.cnblogs.com/deng-tao/p/6536302.html 阅读全文

posted @ 2021-01-09 23:57 frank_cui 阅读(91) 评论(0) 推荐(0)

2021年1月6日

算法 - 前缀树Trie

摘要: leetcode官方解析(必看) https://leetcode-cn.com/problems/implement-trie-prefix-tree/solution/shi-xian-trie-qian-zhui-shu-by-leetcode/ Trie用处 Trie (发音为 "try") 阅读全文

posted @ 2021-01-06 15:24 frank_cui 阅读(221) 评论(0) 推荐(0)

Java 基础 - 原码,补码和反码

摘要: 总结 1-正数的原码,反码,补码都一致;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1) [+1] = [00000001]原 = [00000001]反 = [00000001]补 [-1] = [10000001]原 = [11111110]反 阅读全文

posted @ 2021-01-06 00:18 frank_cui 阅读(278) 评论(0) 推荐(0)

2020年12月30日

算法 *-* 区间问题

摘要: 总结 1.画图,画图,画图。直观观察规律 2.排序,排序,排序。按照起点/终点排序,或者混合排序。 int[][] points = new int[][]{{1,2},{1,4},{10,18},{7,11},{3,6}}; // 按照起点升序排列;起点相同时,终点按照降序排列 Arrays.so 阅读全文

posted @ 2020-12-30 01:34 frank_cui 阅读(131) 评论(0) 推荐(0)

2020年12月29日

算法 *-* 贪心算法Greedy

摘要: 贪心 vs 动态规划 联系 都是一种推导算法 都是分解成子问题来求解,都需要具有最优子结构 区别 如果把所有的子问题看成一棵树的话: 贪心:贪心从根出发,每次向下寻找(原文:遍历)最优子树即可。通常这个“最优”都是基于当前情况下显而易见的“最优”,仅需看本节点的情况,不需要知道该节点的所有子树情况, 阅读全文

posted @ 2020-12-29 21:43 frank_cui 阅读(126) 评论(0) 推荐(0)

2020年12月25日

算法 *-* 滑动窗口Sliding Window (子串问题)

摘要: 总结 模板 int left = 0, right = 0; while (right < s.size()) { // 增大窗口 window.add(s[right]); right++; while (window needs shrink) { // 缩小窗口 window.remove(s 阅读全文

posted @ 2020-12-25 00:51 frank_cui 阅读(118) 评论(0) 推荐(0)

2020年12月24日

算法 *-* 二分查找(三种情况, 统一模板)

摘要: 1. 总结 binary_search:普通的二分搜索,就是搜索target本身的值 left_bound:搜索比target小的数字的个数。有序数组nums = [2,3,5,7],target = 1,算法会返回 0,含义是:nums中小于 1 的元素有 0 个;nums = [2,3,5,7] 阅读全文

posted @ 2020-12-24 00:08 frank_cui 阅读(131) 评论(0) 推荐(0)

2020年12月18日

JVM - finalize()方法的原理

摘要: 总结 1.当JVM通过GC Roots可达性分析,判断某对象可以被回收后,会判断是否重写了finalize方法,如果没有,直接回收 2.如果重写了,把该对象放入F-Queue队列,有线程(一个级别很低的daemon线程)专门遍历并执行这些的finalize方法 3.执行finalize()后,等下一 阅读全文

posted @ 2020-12-18 22:58 frank_cui 阅读(735) 评论(0) 推荐(0)

JVM - 常用的 jvm 调优的参数都有哪些?

摘要: 总结 -Xms256m:初始化堆大小为 256m; -Xmx2g:堆最大内存为 2g; -Xmn50m:新生代的大小50m; -XX:+PrintGCDetails 打印 gc 详细信息 -XX:+HeapDumpOnOutOfMemoryError 在发生OutOfMemoryError错误时,来 阅读全文

posted @ 2020-12-18 21:45 frank_cui 阅读(1215) 评论(0) 推荐(0)

JVM - 什么是CMS(Concurrent Mark-Sweep)垃圾回收器?

摘要: 总结 -XX:+UseConcMarkSweepGC ,表示新生代使用ParNew,老年代的用CMS CMS 是英文 Concurrent Mark-Sweep 的简称,是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动 JVM 的 阅读全文

posted @ 2020-12-18 00:06 frank_cui 阅读(1057) 评论(0) 推荐(0)

2020年12月17日

JVM - JVM有哪些垃圾回收器?

摘要: 总结 并行:垃圾收集的多线程的同时进行。并发:垃圾收集的多线程和应用的多线程同时进行。 吞吐量 = CPU在用户应用程序运行的时间 / (CPU在用户应用程序运行的时间 + CPU垃圾回收的时间) 垃圾回收器算法比较: 串行回收算法:会停止当前应用进程,回收垃圾,停顿时间久,吞吐量大,响应时间长 并 阅读全文

posted @ 2020-12-17 23:35 frank_cui 阅读(174) 评论(0) 推荐(0)

JVM - 堆栈的区别

摘要: 功能方面:对象存储在堆上;基本数据类型的变量(int、short、long、byte、float、double、boolean、char等)以及对象的引用变量存储在栈上。 共享性:堆是线程共享的,栈是线程私有的。 空间大小:堆大小远远大于栈。 补充:栈帧的知识 https://www.cnblogs 阅读全文

posted @ 2020-12-17 21:37 frank_cui 阅读(120) 评论(0) 推荐(0)

JVM - JVM的主要组成部分

摘要: 类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Native Interface) 作用: 首先通过类加载器(ClassLoader)会把 .class字节码文件加载到内存中——运行时数据区(Runti 阅读全文

posted @ 2020-12-17 21:13 frank_cui 阅读(167) 评论(0) 推荐(0)

JVM - Java内存模型 (JMM - Java Memory Model)

摘要: 1. JMM是干嘛的? 作用: 是一个“缓存一致性协议”,用于定义数据读写的规则 : JMM定义了线程工作内存和主内存之间的抽象关系: 线程之间的共享变量存储在主内存(Main Memory)中, 每个线程都有一一个私有的本地内存(Local Memory) 而在多线程环境下,可能会存在主内存和线程 阅读全文

posted @ 2020-12-17 19:53 frank_cui 阅读(86) 评论(0) 推荐(0)

JVM - Jprofiler分析dump文件

摘要: 1. Jprofiler有什么用? MAT是Eclispe里用来分析OOM故障的工具,和Jprofiler类似。 2. Jprofiler 安装 2.1 Jprodiler插件安装 2.2 Jprofiler客户端安装 百度搜索“Jprofiler安装包”即可 2.3 Jprofiler配置 3. 阅读全文

posted @ 2020-12-17 18:16 frank_cui 阅读(4935) 评论(0) 推荐(0)

2020年12月16日

JVM - 分代收集(都在堆内部) + Minor GC + Full GC

摘要: 总结 JVM中的堆: jdk1.7之前:一般分为三大部分:新生代、老年代、永久代 jdk1.8起:一般分为两大部分:新生代、老年代(永久代已经移除,1.8后用元空间代替,并移出堆) GC算法:JVM - 垃圾回收算法 对象object在堆heap的分配过程 1.Java新对象的会在新生代的Eden区 阅读全文

posted @ 2020-12-16 00:29 frank_cui 阅读(174) 评论(0) 推荐(0)

2020年12月15日

JVM - 垃圾回收算法

摘要: 总结 N代表内存的大小。 复制算法只访问一半的内存,所以它最快; 标记清除要遍历一整个内存N; 标记压缩除了遍历一遍内存N,还要走一遍移动的过程; 1. 标记-清除算法(Mark-Sweep) 算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 阅读全文

posted @ 2020-12-15 22:54 frank_cui 阅读(116) 评论(0) 推荐(0)

上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 49 下一页

导航

levels of contents