上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 33 下一页

2020年3月24日

微信小程序的云函数,需要在微信开发者工具的【编辑器】中,右击云函数文件夹,选择【新建 Node.js 云函数】,然后上传;开发版中可以发送消息进行测试

摘要: 微信小程序的云函数,需要在微信开发者工具的【编辑器】中,右击云函数文件夹,选择【新建 Node.js 云函数】,然后上传;开发版中可以发送消息进行测试 阅读全文

posted @ 2020-03-24 21:18 cag2050 阅读(827) 评论(0) 推荐(0) 编辑

2020年3月19日

Redis 3.2 版本后 list 的实现 - quickList

摘要: Redis中的列表对象在版本3.2之前,列表底层的编码是ziplist和linkedlist实现的,但是在版本3.2之后,重新引入了一个 quicklist 的数据结构,列表的底层都由quicklist实现。 在早期的设计中, 当列表对象中元素的长度比较小或者数量比较少的时候,采用ziplist来存 阅读全文

posted @ 2020-03-19 15:18 cag2050 阅读(273) 评论(0) 推荐(0) 编辑

2020年3月16日

每当发生一次垃圾收集,所有用户线程都必须跑到最近的一个安全点然后挂起线程来等待垃圾回收

摘要: 每当发生一次垃圾收集,所有用户线程(严格来说,不包括正在执行native代码的用户线程,因为native代码一般不会改变Java对象的引用关系,所以没有必要挂起它们来等待垃圾回收。)都必须跑到最近的一个安全点然后挂起线程来等待垃圾回收。 使用 Xmn参数手工调整新生代的大小 阅读全文

posted @ 2020-03-16 17:40 cag2050 阅读(244) 评论(0) 推荐(0) 编辑

2020年3月8日

你了解dt.jar吗

摘要: http://www.blogjava.net/landon/archive/2011/05/15/350285.html 阅读全文

posted @ 2020-03-08 12:30 cag2050 阅读(263) 评论(0) 推荐(0) 编辑

javap,是 java printer 的缩写,是 JDK 自带的 Java 字节码分析工具

摘要: javap,是 java printer 的缩写,是 JDK 自带的 Java 字节码分析工具 阅读全文

posted @ 2020-03-08 12:27 cag2050 阅读(431) 评论(0) 推荐(0) 编辑

2020年3月6日

这段代码的返回值在出现异常和不出现异常的情况下,分别应该是多少?

摘要: 问:这段代码的返回值在出现异常和不出现异常的情况下,分别应该是多少?《深入理解Java虚拟机(第3版)》代码清单6 5 答:从Java代码的语义上讲,这三条执行路径分别为: 1. 如果try语句块中出现属于Exception或其子类的异常,转到catch语句块处理; 2. 如果try语句块中出现不属 阅读全文

posted @ 2020-03-06 17:20 cag2050 阅读(175) 评论(0) 推荐(0) 编辑

strictfp 关键字修饰方法,即 strict float point (精确浮点)

摘要: strictfp 关键字修饰方法,即 strict float point (精确浮点) 阅读全文

posted @ 2020-03-06 15:26 cag2050 阅读(289) 评论(0) 推荐(0) 编辑

transient 修饰符修饰属性:不需要序列化的属性

摘要: transient 修饰符修饰属性:不需要序列化的属性 阅读全文

posted @ 2020-03-06 14:54 cag2050 阅读(286) 评论(0) 推荐(0) 编辑

2020年3月5日

Java 中的 CAS 操作

摘要: 在JDK 5之后,Java类库中才开始使用CAS操作,该操作由sun.misc.Unsafe类里面的compareAndSwapInt()和compareAndSwapLong()等几个方法包装提供。HotSpot虚拟机在内部对这些方法做了特殊处理,即时编译出来的结果就是一条平台相关的处理器CAS指 阅读全文

posted @ 2020-03-05 15:56 cag2050 阅读(945) 评论(0) 推荐(0) 编辑

ReentrantLock 与 synchronized 的比较

摘要: 重入锁(ReentrantLock)是Lock接口最常见的一种实现[插图],顾名思义,它与synchronized一样是可重入[插图]的。在基本用法上,ReentrantLock也与synchronized很相似,只是代码写法上稍有区别而已。不过,ReentrantLock与synchronized 阅读全文

posted @ 2020-03-05 15:41 cag2050 阅读(669) 评论(0) 推荐(0) 编辑

线程安全的实现方法:互斥同步、非阻塞同步、无同步方案

摘要: 互斥同步(也称为阻塞同步,属于一种悲观的并发策略) 互斥同步,可以用:synchronized、J.U.C包中的锁 非阻塞同步(基于冲突检测的乐观并发策略,使用了硬件指令集提供的CAS功能) 非阻塞同步,可以用:J.U.C包里面的整数原子类 无同步方案 无同步方案,可以用:可重入代码(类似于纯函数) 阅读全文

posted @ 2020-03-05 15:36 cag2050 阅读(586) 评论(0) 推荐(0) 编辑

J.U.C包的意义

摘要: 从上面的介绍中我们可以看到synchronized的局限性,除了synchronized关键字以外,自JDK 5起(实现了JSR166[插图]),Java类库中新提供了java.util.concurrent包(下文称J.U.C包),其中的java.util.concurrent.locks.Loc 阅读全文

posted @ 2020-03-05 15:14 cag2050 阅读(128) 评论(0) 推荐(0) 编辑

synchronized 原理

摘要: 在Java里面,最基本的互斥同步手段就是synchronized关键字,这是一种块结构(Block Structured)的同步语法。synchronized关键字经过Javac编译之后,会在同步块的前后分别形成monitorenter和monitorexit这两个字节码指令。这两个字节码指令都需要 阅读全文

posted @ 2020-03-05 15:08 cag2050 阅读(182) 评论(0) 推荐(0) 编辑

什么场景下,使用 final、volatile、Atomic原子类、synchronized、J.U.C 包中的锁?

摘要: 使用原则 满足使用条件的情况下,按先后顺序优先使用:final、volatile、Atomic原子类、synchronized、J.U.C 包中的锁 使用 final 的场景 final关键字的可见性是指:被final修饰的字段在构造器中一旦被初始化完成,并且构造器没有把“this”的引用传递出去( 阅读全文

posted @ 2020-03-05 11:33 cag2050 阅读(330) 评论(0) 推荐(0) 编辑

2020年3月4日

volatile 原理

摘要: 可见性 当一个变量定义为volatile之后,它将具备两种特性,第一是保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。 volatile变量在各个线程的工作内存中不存在一致性问题(在各个线程的工作内存中,volatile变量也可以 阅读全文

posted @ 2020-03-04 17:53 cag2050 阅读(162) 评论(0) 推荐(0) 编辑

Java 内存模型,在并发过程中如何处理原子性、可见性和有序性这3个特性?

摘要: 特性 | 概念 | 实现此特性的解决方案 | | 原子性(Atomicity)| 由Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write,我们大致可以认为基本数据类型的访问读写是具备原子性的(例外就是long和double的非原子性协定,读者 阅读全文

posted @ 2020-03-04 14:22 cag2050 阅读(243) 评论(0) 推荐(0) 编辑

ThreadLocal:一个变量要被某个线程独享

摘要: Java语言中,如果一个变量要被多线程访问,可以使用volatile关键字声明它为“易变的”; 如果一个变量要被某个线程独享,Java中就没有类似C++中__declspec(thread)这样的关键字,不过还是可以通过java.lang.ThreadLocal类来实现线程本地存储的功能。每一个线程 阅读全文

posted @ 2020-03-04 13:21 cag2050 阅读(556) 评论(0) 推荐(0) 编辑

slf4j 从多个日志实现中,绑定一个具体的日志,原理解析

摘要: 参考 | 网址 | Java日志框架:slf4j作用及其实现原理 | https://www.cnblogs.com/xrq730/p/8619156.html 阅读全文

posted @ 2020-03-04 11:32 cag2050 阅读(474) 评论(0) 推荐(0) 编辑

使用场景:final、volatile、ThreadLocal、synchronized、Atomic(自己整理)

摘要: 锁 | 原理 | 使用场景 | | final | 实现了Java内存模型的可见性 | 一个变量要被多个线程访问 volatile | 实现了Java内存模型的可见性、有序性 | 一个变量要被多个线程访问 ThreadLocal | 如果一个变量要被某个线程独享,Java中就没有类似C++中__de 阅读全文

posted @ 2020-03-04 11:03 cag2050 阅读(293) 评论(0) 推荐(0) 编辑

2020年3月3日

锁的粒度:ThreadLocal、volatile、Atomic 和 Synchronized

摘要: 出处:https://blog.csdn.net/hhx0626/article/details/53997757 阅读全文

posted @ 2020-03-03 14:13 cag2050 阅读(160) 评论(0) 推荐(0) 编辑

@RequestMapping,如果不配置 method, 则以任何请求形式 RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE 等都可以访问得到

摘要: `@RequestMapping(value = "/userInfo", method = {RequestMethod.POST,RequestMethod.GET})` 一般指定具体的 method,方便在 swagger ui.html 进行调试。 阅读全文

posted @ 2020-03-03 11:41 cag2050 阅读(2833) 评论(0) 推荐(0) 编辑

2020年3月1日

可作为 GC Roots 的对象,详见书籍《深入理解Java虚拟机(第3版)》第70页

摘要: 可作为 GC Roots 的对象,详见书籍《深入理解Java虚拟机(第3版)》第70页 阅读全文

posted @ 2020-03-01 23:40 cag2050 阅读(154) 评论(0) 推荐(0) 编辑

Partial GC、Minor GC/Young GC、Major GC/Old GC、Mixed GC、Full GC 的含义

摘要: 部分收集(Partial GC):指目标不是完整收集整个Java堆的垃圾收集,其中又分为: 1. 新生代收集(Minor GC/Young GC):指目标只是新生代的垃圾收集。 2. 老年代收集(Major GC/Old GC):指目标只是老年代的垃圾收集。目前只有CMS收集器会有单独收集老年代的行 阅读全文

posted @ 2020-03-01 21:12 cag2050 阅读(971) 评论(0) 推荐(0) 编辑

2020年2月29日

macOS 系统下,JDK 8、JDK 9 用云盘下载(官方下载太慢,csdn需要积分/C币)

摘要: macOS 系统下,JDK 8、JDK 9 用云盘下载,链接:https://pan.baidu.com/s/1Oa7xIKLeSAZsITsx4xJfkw 密码:nrdq 官方下载地址:https://www.oracle.com/java/technologies/javase/javase9 阅读全文

posted @ 2020-02-29 17:04 cag2050 阅读(1771) 评论(0) 推荐(0) 编辑

2020年2月26日

banwagong VPS可以免费更换被墙的IP

摘要: 出处:https://www.banwago.com/1978.html 查看是否被墙:https://kiwivm.64clouds.com/main exec.php?mode=blacklistcheck banwagong IP被墙后怎么购买新的IP地址: https://www.banwa 阅读全文

posted @ 2020-02-26 22:52 cag2050 阅读(363) 评论(0) 推荐(0) 编辑

json 中配置了 "navigationStyle": "custom",video 播放才能使用大屏,需要自定义 navigationBar

摘要: json 中配置了 "navigationStyle": "custom",video 播放才能使用大屏,需要自定义 navigationBar 阅读全文

posted @ 2020-02-26 14:13 cag2050 阅读(243) 评论(0) 推荐(0) 编辑

2020年2月24日

Java 中的各种锁(自己总结 )

摘要: 锁的种类 | 概念 | 实现 | | 悲观锁(阻塞同步) | | synchronized、 乐观锁(非阻塞同步) | 目前,在Java中应用最广泛的非阻塞同步就是CAS | CAS包装类:AtomicXXX、 公平锁 | 公平锁是指多个线程在等待同一个锁时,必须按照申请锁的时间顺序来依次获得锁;而 阅读全文

posted @ 2020-02-24 17:32 cag2050 阅读(419) 评论(0) 推荐(0) 编辑

2020年2月22日

阿姆达尔定律(Amdahl's Law)

摘要: 阿姆达尔定律是一个计算机科学界的经验法则,因IBM公司计算机架构师吉恩·阿姆达尔而得名。 书籍《深入理解Java虚拟机》第3版第438页,注解1: Amdahl定律通过系统中并行化与串行化的比重来描述多处理器系统能获得的运算加速能力,摩尔定律则用于描述处理器晶体管数量与运行效率之间的发展关系。这两个 阅读全文

posted @ 2020-02-22 16:56 cag2050 阅读(1073) 评论(0) 推荐(1) 编辑

2020年2月20日

微信小程序中,数组的深拷贝

摘要: ``` function copyArr(oldArr){ let newArr = []; newArr = JSON.parse(JSON.stringify(oldArr)); return newArr; } ``` 阅读全文

posted @ 2020-02-20 18:06 cag2050 阅读(2363) 评论(0) 推荐(0) 编辑

JVM 垃圾收集器,种类

摘要: 垃圾收集器 | 所属代:新生代、老年代 | 使用算法(新生代都使用复制算法) | 单线程 或 多线程 | 备注 | | | | Serial | 新生代 | 标记 复制 | 单线程 | Serial Old | 老年代 | 标记 整理 | 单线程 | Serial Old 是 Serial 收集器的 阅读全文

posted @ 2020-02-20 15:11 cag2050 阅读(142) 评论(0) 推荐(0) 编辑

macOS 下查看 JAVA_HOME、JAVA 多版本并存

摘要: 1. macOS 下查看 JAVA_HOME: ` $ /usr/libexec/java_home ` 2. 使用 V 选项列出所有版本的 JAVA_HOME: ` $ /usr/libexec/java_home verbose ` 3. 在OS X中使用jEnv管理多个Java版本:http: 阅读全文

posted @ 2020-02-20 12:02 cag2050 阅读(961) 评论(0) 推荐(0) 编辑

2020年2月18日

什么是MBean?什么是JMX架构?

摘要: 出处:https://blog.csdn.net/u010833547/article/details/92806510 阅读全文

posted @ 2020-02-18 17:43 cag2050 阅读(318) 评论(0) 推荐(0) 编辑

jdk1.8 默认垃圾收集器为:Parallel Scavenge(新生代)+ Parallel Old(老年代)

摘要: ```shell$ java -XX:+PrintCommandLineFlags -version-XX:InitialHeapSize=268435456 -XX:MaxHeapSize=4294967296 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UsePa... 阅读全文

posted @ 2020-02-18 16:40 cag2050 阅读(3379) 评论(0) 推荐(0) 编辑

2020年2月7日

offsetTop:获取对象相对于由offsetParent属性指定的父坐标(css定位的元素或body元素)距离顶端的高度。

摘要: offsettop 的定位是相对于 offsetParent 元素的 offsetParent的定义:与当前元素最近的经过定位(position不等于static)的父级元素 类似于绝对定位的参照点。 三种情况: position为fixed时,offsetParent为null,offsettop 阅读全文

posted @ 2020-02-07 18:18 cag2050 阅读(896) 评论(0) 推荐(0) 编辑

2020年2月4日

JVM 性能调优工具:jstat 使用

摘要: CCS: Compressed class space utilization as a percentage. 压缩类空间利用率,为百分比 阅读全文

posted @ 2020-02-04 18:58 cag2050 阅读(133) 评论(0) 推荐(0) 编辑

JVM 性能调优工具,列表

摘要: macOS中JAVA可执行工具路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin,详见:https://www.cnblogs.com/cag2050/p/7582236.html JDK 的命令行工具 | 阅读全文

posted @ 2020-02-04 18:54 cag2050 阅读(158) 评论(0) 推荐(0) 编辑

2020年1月28日

Java 中常用锁实现的方式有两种:1. 用并发包中的锁类;2. 使用同步代码块

摘要: Java 中常用锁实现的方式有两种: 1. 用并发包中的锁类; 并发包的类族中,Lock 是 JUC 包的顶层接口,它的实现利用了 volatile 的可见性。 2. 使用同步代码块 阅读全文

posted @ 2020-01-28 12:49 cag2050 阅读(292) 评论(0) 推荐(0) 编辑

2020年1月18日

Android 9.0 配置 charles 的 https 抓包

摘要: 资料 | 网址 | Android9.0配置charles的https抓包 | https://www.cnblogs.com/ilizhu/p/11175431.html android 9.0以上charles https抓包 | https://www.cnblogs.com/wangyueh 阅读全文

posted @ 2020-01-18 16:39 cag2050 阅读(2375) 评论(0) 推荐(0) 编辑

2020年1月15日

背景,不要用:background-size: contain; 推荐用:background-size: 100% 100%;

摘要: 背景,不要用:background size: contain; 推荐用:background size: 100% 100%; 阅读全文

posted @ 2020-01-15 14:12 cag2050 阅读(238) 评论(0) 推荐(0) 编辑

2020年1月13日

textarea 过滤 emoji 表情和空格(如果只 replace emoji 表情,会产生一个空格,所以再 replace 空格)

摘要: ``` handleInput(e) { let someValue = e.detail.value.replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, '').replace(/\s+/g, '') } ``` 阅读全文

posted @ 2020-01-13 19:48 cag2050 阅读(466) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 33 下一页

导航