Java
文章平均质量分 50
joye123
这个作者很懒,什么都没留下…
展开
-
Java与C语言中的锁
Java与C语言中的锁C嵌入式汇编的语法格式是:asm(code: output operand list: input operand list: clobber list)__asm__是GCC关键字asm的宏定义寄存器其添加%,例如%0,就是0号寄存器b,w,l分别表示字节,字,双字output operand list 和 input operand list是c代码和嵌入式汇编代码的接口,clobber list描述了汇编代码对寄存器的修改情况volatile关键字易变性原创 2020-09-10 17:23:45 · 1143 阅读 · 1 评论 -
ThreadLocal应用与实现
ThreadLocal应用与实现什么是ThreadLocal以及如何使用ThreadLocal 直译过来就是线程本地变量的意思。它是一个容器类,可以存入其他对象类型。它的作用就是控制多个线程对同一个ThreadLocal变量读取和写入时,可以做到相互独立,互不影响。并且对多次get()操作返回的值是同一个。ThreadLocal有两种初始化方式:使用ThreadLocal的set(Object)方法设置初始值。重写initialValues()方法,返回初始值。当调用get()方法获取值时,如原创 2020-08-18 19:02:45 · 625 阅读 · 0 评论 -
Java中的线程和线程池
Java中的线程和线程池什么是线程线程是CPU进行程序调度的最小单元。线程之间拥有独立的栈空间和程序计数器。两种使用方式继承Thread类实现Runnable接口线程执行时会调用Runnable接口的run()方法。线程状态NEW 已创建,未启动RUNNABLE 在JVM中,线程正在执行或等待CPU调度BLOCKED 阻塞,等待监视器锁WAITING 不定期等待其他线程执行特定操作,如Object.wait Thread.join LockSupport.parkTIMED_W原创 2020-08-18 10:47:34 · 406 阅读 · 0 评论 -
Java中的Object
Java中的ObjectObject类的几个方法方法说明native void registerNative()注册本地方法,负责将其他几个本地方法注册到JVM中native Class<?> getClass()获取该对象所属的类对象native int hashCode()获取当前对象的哈希码,可用于哈希表中的标识boolean equals(Object)和另外一个对象比较是否相等native Object clone()创建并返回原创 2020-06-24 17:31:39 · 623 阅读 · 0 评论 -
JNI
JNIJNI是指Java原生接口,它允许在Java虚拟机中的运行的Java代码与其他编程语言(如C、C++、汇编)编写的程序和库进行互操作。它是一种调用规范,我们的编写的JNI程序可以运行在任何实现了该JNI规范的商业虚拟机上。JNI原生接口规范背景尽快完全可以用Java编写应用程序,但是在某些情况下,仅仅Java无法满足应用程序的需求,这时需要本机方法来处理这些情况。标准Java类库不支持应用程序所需的平台相关的功能复用其他语言编写的库使用较低级别的语言如汇编来实现对运行时间要求较高的代码翻译 2020-06-19 15:26:36 · 273 阅读 · 0 评论 -
Java中的IO
Java中的IO不同的IO的方式是以不同的抽象模型和交互方式区分的。BIO Block IO 同步阻塞NIO NonBlock IO 多路复用,同步非阻塞AIO Async IO 异步非阻塞BIO最传统的IO模型,基于流模型实现,如文件流、网络流等。交互方式是同步、阻塞的方式。在读取或写入完成之前,线程会一直阻塞。代码会可靠的顺序执行。下面是使用BIO的Socket Api实现的网络Server端,accept()方法会一直阻塞,直到有客户端连接上来。为了更多的客户端提供服务,一原创 2020-06-01 15:48:26 · 287 阅读 · 0 评论 -
Java程序main方法执行流程
Java程序main方法执行流程当我们编写完java源代码程序后,经过javac编译后,执行java命令执行这个程序时,是怎么一步步的调用到我们程序中的main方法的呢?今天通过查看OpenJdk的源码来揭开它的神秘面纱。java命令是在安装jre/jdk时配置到系统环境路径中去的,执行java命令时会找到bin目录下的java可执行程序,并将我们编译后的java程序类名传递进去就可以执行了。...原创 2019-12-06 18:42:40 · 5557 阅读 · 0 评论 -
HotSpot虚拟机术语表
HotSpot Glossary of TermsA work in progress, especially as the HotSpot VM evolves. But a place to put definitions of things so we only have to define them once. There are empty entries (marked TBD fo...翻译 2019-11-27 11:15:16 · 285 阅读 · 0 评论 -
关于OkHttp3中publicsuffixes.gz的使用
关于OkHttp3中publicsuffixes.gz的使用publicsuffixes.gz中是一个压缩的文本文件,里面包含了目前公开的“公共后缀列表”。 关于“公共后缀列表”的解释如下:、“公共后缀”是指互联网用户可以(或历史上可以)直接注册名称的公共后缀。一些公共后缀的例子是.COM, .co.uk 和 pvt.k12.ma.us。公共后缀列表是所有已知公共后缀的列表。公共后缀...原创 2018-09-03 10:17:14 · 11898 阅读 · 0 评论 -
金额转化中文算法
最近要项目中用到了把数字类型的金额(1029.89元)转换成中文书写的方式(一仟零贰拾玖点八九元),参考了一些其他人写的算法,总觉得有些不太完善或者不严谨,例如10100转换成“十万一千元”,还是“十万零一千元”。我看到的一些算法都是转换成了前者,甚至iOS开发中支持中文转换的Api也是转换成了前者,但当我请求公司的财务同学时,给出的答案应该是后者。 所以,把自己写的转换过程分享出来,可以写的不是原创 2017-12-03 22:47:11 · 966 阅读 · 0 评论 -
关于Android4.x系统支持TLS1.2的解决方案
为Http请求的网络客户端设置一个特殊的SSLSocketFactory。这个代理SSLSocketFactory在创建一个Socket连接的时候,会设置Socket的可用的TLS版本。private static final String[] TLS_SUPPORT_VERSION = {"TLSv1.1", "TLSv1.2"}; ((SSLSocket) s).setEnabledProto原创 2016-12-26 18:17:59 · 11174 阅读 · 6 评论 -
Java并发、同步总结
Java中提供并发控制的两种方式:1、同步关键字 2、锁Java 5.0之前使用的是同步关键字Synchronized和volatile,他们是jvm中的隐式锁 Synchronized和volatile的实现是基于jvm指令的同步代码块实现的。 添加同步关键字后,会在jvm代码块指令前后添加monitorexit和monitorenter两个同步指令。 但是Synchronized修饰的方法原创 2016-09-28 11:39:52 · 1583 阅读 · 0 评论 -
Java 算法 随笔
最大子序列和问题即计算出给定无序整数(可能有负值)集合A1,A2….An,求其子序列中最大值的问题最优算法/** * 算法4 最优解 时间复杂度为O(N) * * 利用最大子序列的首尾值肯定大于零的特性 * * @param a * @return */ public int MaxSubSumAlgorithm4原创 2016-09-07 23:03:34 · 720 阅读 · 0 评论 -
Java 常见数据结构
前述: a、transient关键字用于可序列化的类中,标示该字段不需要被序列化。也就不能传输。例:HashMap中的entrySet字段 b、哈希表(散列表) 哈希算法+数组1、HashMap(哈希表) 非线程安全 数组+单链表 ——> HashMapEntry原创 2016-09-11 17:49:57 · 344 阅读 · 0 评论