lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

随笔分类 -  corejava-基础

摘要:在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存 阅读全文
posted @ 2019-08-07 13:08 白露~ 阅读(26706) 评论(0) 推荐(3) 编辑

摘要:目前主流的跨语言异构模块通信方案有很多种,比如: 1、跨语言的RPC调用(Apache Thrift):它是Facebook贡献给Apache基金会的开源项目,旨在构建跨语言平台的通信方案。目前它支持非常多种语言,其中当然包括C/C++和Java。Thrift内置一个语言编译器,可以根据Thrift 阅读全文
posted @ 2019-05-23 20:58 白露~ 阅读(778) 评论(0) 推荐(0) 编辑

摘要:1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可。首先看下JNI调用C/C++的过程,注意写程序时自下而上,调用时自上而下。 可 见步骤非常的多, 阅读全文
posted @ 2019-05-23 20:55 白露~ 阅读(1742) 评论(0) 推荐(0) 编辑

摘要:数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家可能会进一步追问:JVM底层又是如何实现synchronized的? 本文所指说的JVM是指Hotspot的6u23版本,下面首先介绍synch 阅读全文
posted @ 2019-05-16 19:35 白露~ 阅读(793) 评论(0) 推荐(0) 编辑

摘要:一、Java中synchronized关键字的作用 总所周知,在并发环境中多个线程对同一个资源进行访问很可能出现脏读等一系列线程安全问题。这时我们可以用加锁的方式对访问共享资源的代码块进行加锁,以确保同一时间段内只能有一个线对资源进行访问,在它释放锁之前其他竞争锁的线程只能等待。而synchroni 阅读全文
posted @ 2019-05-16 19:33 白露~ 阅读(3942) 评论(0) 推荐(0) 编辑

摘要:转载。 https://blog.csdn.net/fly910905/article/details/79765381 同步代码块,同步方法,或者是用java提供的锁机制,我们可以实现对共享资源变量的同步控制。 技术点: 1、线程与进程: 在开始之前先把进程与线程进行区分一下,一个程序最少需要一个 阅读全文
posted @ 2019-05-16 18:11 白露~ 阅读(2364) 评论(1) 推荐(0) 编辑

摘要:多次思考过这个问题,都没有形成理论,今天有时间了,我把他总结出来,希望对大家有所帮助 1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果 阅读全文
posted @ 2019-05-16 18:07 白露~ 阅读(697) 评论(0) 推荐(0) 编辑

摘要:转载。 https://blog.csdn.net/wu1226419614/article/details/73740899 转载。 https://blog.csdn.net/wu1226419614/article/details/73740899 转载。 https://blog.csdn. 阅读全文
posted @ 2019-05-16 18:00 白露~ 阅读(1219) 评论(0) 推荐(0) 编辑

摘要:区别如下: 1. lock是一个接口,而synchronized是java的一个关键字,synchronized是内置的语言实现;(具体实现上的区别在《Java虚拟机》中有讲解底层的CAS不同,以前有读过现在又遗忘了。) 2. synchronized在发生异常时候会自动释放占有的锁,因此不会出现死 阅读全文
posted @ 2019-05-16 17:58 白露~ 阅读(302) 评论(0) 推荐(0) 编辑

摘要:转载。 https://blog.csdn.net/asdf717/article/details/47252763 转载。 https://blog.csdn.net/asdf717/article/details/47252763 转载。 https://blog.csdn.net/asdf71 阅读全文
posted @ 2019-05-16 17:55 白露~ 阅读(786) 评论(0) 推荐(0) 编辑

摘要:转自:https://blog.csdn.net/m0_37700275/article/details/83151850 目录介绍1.Synchronize和ReentrantLock区别 1.1 相似点 1.2 区别 1.3 什么是线程安全问题?如何理解 1.4 线程安全需要保证几个基本特性 2 阅读全文
posted @ 2019-05-16 17:35 白露~ 阅读(982) 评论(0) 推荐(0) 编辑

摘要:转载:http://houlinyan.iteye.com/blog/1112535 基本概念 1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁 阅读全文
posted @ 2019-05-16 17:35 白露~ 阅读(3678) 评论(0) 推荐(0) 编辑

摘要:转载。 https://blog.csdn.net/zhangdong2012/article/details/79983404 转载。 https://blog.csdn.net/zhangdong2012/article/details/79983404 转载。 https://blog.csd 阅读全文
posted @ 2019-05-08 20:02 白露~ 阅读(635) 评论(0) 推荐(0) 编辑

摘要:Java凝视Annotation 从JDK 5開始,Java添加了对元数据(MetaData)的支持,也就是Annotation(凝视)。Annotation提供了一种为程序元素设置元数据的方法。程序元素包含修饰包、类、构造器、方法、成员变量、參数、局部变量。从某些方面来看,Annotation就想 阅读全文
posted @ 2019-05-08 13:14 白露~ 阅读(358) 评论(0) 推荐(0) 编辑

摘要:本文翻译自:http://www.programcreek.com/2013/04/why-string-is-immutable-in-java/ 这是一个很老但很流行的问题,这里有几个原因String在java中被设计成immutable的。对内存、同步、数据结构等有好的理解,能更好的回答这个问 阅读全文
posted @ 2019-05-06 23:07 白露~ 阅读(499) 评论(0) 推荐(0) 编辑

摘要:1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改。 不可变数据类型:其内部的操作不会改变内部的值,一旦试图更改其内部值,将会构造一个新的对象而非对原来的值进行更改。 2.mutable和immutable类 阅读全文
posted @ 2019-05-06 22:50 白露~ 阅读(1545) 评论(0) 推荐(0) 编辑

摘要:关于Java传参时是引用传递还是值传递,是一个讨论比较多的话题,有说Java中只有值传递,也有些地方说引用传递和值传递都存在,本篇记录思考过程,不保证正确性, 感兴趣的同学一起讨论。 1.基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型。相应的,变量也有两种类型:基 阅读全文
posted @ 2019-05-06 22:15 白露~ 阅读(3874) 评论(0) 推荐(1) 编辑

摘要:1.Java对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。 那么在java语言中,有几种方式可以创建对象呢? 使用new操作符创建一个对象。 使用clone方 阅读全文
posted @ 2019-05-06 21:52 白露~ 阅读(1146) 评论(0) 推荐(0) 编辑

摘要:java“指针” Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能 通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度  阅读全文
posted @ 2019-05-06 16:29 白露~ 阅读(5394) 评论(0) 推荐(0) 编辑

摘要:Part I 没啥好说的,直接开始Part II吧。 Part II 谈到了对象的克隆,就不得不说为什么要对对象进行克隆。Java中所有的对象都是保存在堆中,而堆是供全局共享的。也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象 阅读全文
posted @ 2019-05-06 16:17 白露~ 阅读(695) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示