Java虚拟机剖析之内存区域,内存的溢出,泄漏

本博文是在读了“兰亭风雨”的博文之后,加上自己的个人理解所写。在此先感谢“兰亭风雨”的分享。如有错误或者不好之处还望指出,一起成长。在之前我的一片博文“多线程之原子性,可见性,有序性,并发问题解决”中也有提到内存区域的分配,其中的一些从属关系是不全面,但是那篇文章主要的思想是为了讲解线程之间数据共...

2019-04-02 11:28:02

阅读数 220

评论数 0

Java 线程和进程,并发解决之synchronized

什么是进程?程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。 在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以...

2019-04-02 11:26:07

阅读数 808

评论数 2

多线程之原子性,可见性,有序性,并发问题解决

在Android开发或者Java开发中,遇到并发的问题的时候很多。并发带给我们的问题就是,当多个线程操作同一个数据的时候,往往不能得到我们预期的结果。造成这个问题的原因是什么呢?其实就是该数据对这多个线程没有可见性,这些线程就不能有序性的去操作共同数据,还不是原子操作,所以导致预期结果不一样。这之...

2019-04-02 11:25:20

阅读数 448

评论数 0

设计模式之Builder设计模式(可替代性)

转载请申明出处:http://blog.csdn.net/qq_24692041/article/details/79277901开篇引言 在开发中尤其注重代码的可迭代性,这就侧重了功能解耦和类之间的解耦。因为在一个功能更改或者新功能加入的时候,我们尽量不修改之前的类,而是增加新类中实现新的功能,...

2018-02-08 12:00:17

阅读数 92

评论数 0

并发编程<五>并发处理之synchronized

序言-几个基本概念 在本系列中第四篇文章中已经讲述了并发产生的不可控结果,和结果不可控的根本原因。现在来说说Java所提供的并发处理方式之一的synchronized关键字。学习synchronized关键字之前,我们需要了解一下一下几个概念。 临界资源 多个线程共同访问的资源我们称之为临界资...

2017-11-13 10:45:39

阅读数 104

评论数 0

并发编程<四>并发不可预期结果的根本原因

提出问题 说到并发,我们应该给自己提出下面这三个问题: 产生并发的根本原因是什么?会造成什么后果?怎么去控制,处理并发达到我们预期的结果。 提出这三个问题之后,我们慢慢来看看一下几个知识点,这三问题自然迎刃而解。解答上面3个问题之前,我们需要对JVM的内存模型有所了解,在《JVM内存模型》一文...

2017-11-09 15:06:51

阅读数 172

评论数 0

JVM内存模型

之前看了很多JVM相关的文章,资料,写了一篇JVM内存相关的文章,现在回过头来,发现理解又不一样了,故而删除了之前的文章,现在完全根据自己的理解写下本文,JVM相关的文章已经太多了,写得都很好,也都大同小异,这儿权当是给自己梳理一下脑中的乱流了! JVM从大的方向来说将内存分为6个部分:java...

2017-11-09 14:23:41

阅读数 114

评论数 0

并发编程<三>线程实现方式Thread,Runnable

Thread,Runnable的区别 我们创建线程的方式一般来说有两种,首先我们来看看两种启动线程方式的具体实现。 第一种继承Thread类,实现run方法,最后调用start方法启动线程。第二种实现Runnable接口,实现run方法,然后调用Thread的有参构造方法,将Runnable的...

2017-11-08 15:58:21

阅读数 94

评论数 0

并发编程<一>线程5大状态切换时机分析及sleep,join,wait,notify,notifyAll,yield剖析

线程5大状态分析 上图是线程从创建到消亡的一个切换过程。下面我们简单类分析每一个状态。 新建状态:新建状态具体是指调用new Thread()创建出线程对象,但是还没有调用start方法的这段时间。前面的一篇文章《Java虚拟机剖析之内存区域,内存的溢出,泄漏》一文中有说到,每一个线程都会...

2017-11-08 11:05:30

阅读数 337

评论数 0

并发编程<二>线程中断和线程中断标志

线程中断,interrupt方法   先看代码和输出结果  子线程代码: package com.example; /** * Created by PICO-USER on 2017/11/6. */ public class ThreadA extends Thread { ...

2017-11-06 15:53:12

阅读数 112

评论数 0

c#之委托

什么是委托?         如果我们需要把方法作为参数来传递的话,就需要用到委托。简单来说,委托就是一个类型,这个类型可以被赋值一个方法的引用(也即是说可以讲一个方法赋值给一个委托实例,这样的话,我们成这个委托实例指向这个方法)。 委托声明和使用        在c#中,使用一个类型,分类两个部...

2017-06-14 11:55:47

阅读数 137

评论数 0

Ubuntu成长记录(一)

最近在Linux环境下工作,还不是很熟悉,在此记录相关知识。 Linux常用命令 解压文件命令 Zip包解压  unzip命令+特殊参数 unzip file.zip 将文件文件解压到当前文件夹 unzip -d /目录 file.zip 将文件解压到指定目录tar.gz包解压 tar -...

2017-05-18 10:29:18

阅读数 240

评论数 0

Android消息机制之Handler,MessageQueue,Looper源码剖析

Android线程间通讯方式有很多,但是大部分内部实现其实都是handler。今天我们就来看看handler的内部实现机制,实现原理,实现细节。 角色分析: Handler进程间通讯主要关联了Thread,ThreadLocal,Handler,Message,MessageQueue,Loop...

2017-03-30 17:00:32

阅读数 2422

评论数 0

Java集合之HashMap

HashMap是基于Hash Table实现的。通过实现Map接口,提过所有对map的操作。允许key值和value值为null。除了能允许为null和不保证线程安全之外,基本上等同于HashTable,并且HashMap不保证插入,取出的顺序。性能方面主要考虑capacity容量和load fa...

2017-03-25 18:58:44

阅读数 344

评论数 0

Java集合之集合框架

转载轻注明出处:http://blog.csdn.net/ns_code/article/details/35564663  Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List...

2017-03-23 09:25:07

阅读数 195

评论数 0

设计模式之Observer(观察者)模式

观察者模式在我们Android中被广泛的应用,比如说我们平时常用到的监听器,适配器的实现等等。今天我们来具体讲一下Observer模式的具体实现思想。首先,观察者模式的初步角色应该有观察者,被观察者两个角色。我们再来看看这两者的任务或者说职责都是啥!还有他们扮演的具体角色。       被观察者:...

2017-03-21 10:31:05

阅读数 196

评论数 0

数据结构之Java单链表反转

本文为数据结构基础,研究得不是很深。用Java实现单链表的反转,虽然本文研究得不是很深,但是因为是数据结构,所以必须是在对Java内存比较清楚的情况下才能真正的搞懂吃透,如果对Java内存不够清楚,那最多只能学形而不能学其内在。          首先我们要搞清楚链表是啥玩意儿?先看看定义:   ...

2017-03-16 15:44:37

阅读数 9457

评论数 0

Android Service中一些你不知道的细节

Android 中的 Service 全面总结 1、Service的种类    按运行地点分类: 类别 区别  优点 缺点   应用 本地服务(Local) 该服务依附在主进程上,  服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不...

2017-03-15 14:29:15

阅读数 290

评论数 0

设计模式之单例模式

在开发中对于每一个类,一般来说我们要去调用这个类中的非静态方法,我们都需要new一个对象,然后去调用方法,这些实例所拥有的的属性值不一定都相同。比如说现在有一个猫Cat这个类,每一次我们要用到该对象我们都new一个对象,那我们new1000次就有1000个对象,就有1000只猫。分别都是:咖啡猫,...

2017-03-13 17:00:34

阅读数 197

评论数 0

ArrayList源码解析

转载请声明出处:http://blog.csdn.net/ns_code/article/details/35568011 ArrayList简介     ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。     ArrayL...

2017-03-13 10:57:31

阅读数 150

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭