Java基础
文章平均质量分 62
syaijava
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java final的用法
java中,提到final,我们想到的就是不能改变,简单说就是下面三种: (1)修饰类,表示该类不能被继承,我们熟知的String就是final的,而且String的所有返回String的方法,都是返回new String (2)修饰方法,表示方法不能被重写,子类无法override (3)修饰变量,表示变量只能一次赋值,以后不能修改。通常这样的变量名是大写的。 下面相信介绍各个用法原创 2015-05-10 11:35:21 · 428 阅读 · 0 评论 -
内部锁与同步
同步是建立在一个著名的叫做内部锁或者监听锁的内部实体。内部锁在同步扮演两个角色:保证对象的独有访问权和建立happens-before原则。 每一个对象都有一个和他关联的内部锁。按照惯例,一个需要对象独有的和一致的访问的线程必须在访问他们获得对象的内部锁,然后在使用完释放。 一个线程在他获得锁和释放锁之间拥有这个内部锁。一旦线程拥有一个内部锁,其他线程就不能获得同一个锁。其他线程会阻塞当他们试原创 2016-06-21 09:32:57 · 299 阅读 · 0 评论 -
并发同步
产生的原因的是:线程通信是通过分享数据和对象的访问,这就导致了两个问题:线程干涉和内存一执性错误。可以用来阻止这些错误的工具是同步。 然而,同步可能引入线程竞争,当两个或多个线程尝试去同时获取一个资源,并且导致虚拟机执行一个或多个线程更慢,或者甚至挂起他们的执行。 Starvation和livelock是线程竞争的形式。 同步主要讲: 线程干扰,描述当多个线程访问共享数据错误是如何引入的。原创 2016-06-20 14:14:44 · 293 阅读 · 0 评论 -
Thread sleep方法
sleep方法就是暂停执行一会。这可以让其他线程获得执行时间。 也可以用来pacing,缓步,比如下面: public class SleepMessages { public static void main(String args[]) throws InterruptedException { String importantInfo[]原创 2016-06-20 11:48:48 · 572 阅读 · 0 评论 -
创建新线程
每一个线程和一个Thread类对象关联。有两种基本策略使用Thread对象创建并发程序: (1)直接控制线程创建和管理,简单的实例化Thread每次应用需要开始一个异步任务, new Thread.start 这个貌似下下策? (2)抽象化线程管理从程序的剩下 部分,传递应用任务给executor,线程池,这样的好处就是线程数量可控,不会泛滥。 下面先看使用Thread对象:原创 2016-06-20 11:05:29 · 284 阅读 · 0 评论 -
java线程和进程
在并发程序中,有两个基本概念:线程和进程。在java中,并发程序大多数处理进程。但是,进程也是非常重要的。 一个计算机系统通常有很多活动的进程和线程。即使是单执行器的系统也是,并且因此在任何时刻只有一个线程在执行。单核的处理时间是通过操作系统叫做时间分片的特性在进程和线程之间共享的。 进程: 一个进程有一个自我包含的执行环境。一个进程通常有一个完全的,私有的运行时资源集。尤其,每一个原创 2016-06-20 10:51:56 · 223 阅读 · 0 评论 -
Java文件流说明
流的概念 流,我们想象中水流,从一边(源端)到另一边(目的端),流是有方向的,根据方向我们分为两类:输入流(从文件到内存), 输出流(从内存到文件)。 流的分类 java.io中的流分为两类,一类直接从指定位置(磁盘文件或者内存区域)读或写,这也是最直接的,其他的以其他输入或输出流作为他的 输入源,经过过滤在处理,叫做过滤流。肯定是因为直接处理具体位置的流不方便,或者效率不高,需要有一些原创 2016-05-11 15:33:19 · 300 阅读 · 0 评论 -
java 二分法查找实现
实现二分法主要有一下两种: while循环和递归。 package interview201505; public class BinarySearch { /** * 二分查找算法 * while循环 */ public static int binarySearch(int[] data, int fin原创 2015-05-11 19:55:24 · 427 阅读 · 0 评论 -
Java的四种引用
很少有同学知道java里面的强弱软虚四种引用吧,今天来简单介绍一下。 java.lang.ref 下 SoftReference WeakReference PhantomReference 三个类,代表了软 弱 虚三种引用。 (1)强引用 我们一般,不使用其他三种方式的引用都是强引用,强引用就好比是生活中的必须品,对于jvm来说,只要对象被强引用,绝对是不能回收的,所以原创 2015-05-11 19:43:02 · 395 阅读 · 0 评论 -
原子访问
原子操作要么不发生,要么全部发生。 下面是原子的: (1)读写基本类型数据(long和double除外) (2)volatile修饰的变量(包含long和double)读写原子 原子动作不能重叠,不用担心线程干扰了,但是这不意味着就不用同步了,因为内存一致性的错误还是可能的。 使用volatile变量减少了内存一致性错误的风险,因为任何写volatile变量建立一个happen-原创 2016-06-21 11:26:02 · 394 阅读 · 0 评论
分享