
Java基础
文章平均质量分 66
再见理想1992
本人从事Java开发,技术不太好,希望能写这个博客来记载自己的学习历程,也能与大家共同分享学习经验。
展开
-
程序员与码农
刚才在论坛不经意间,看到有关源码阅读的帖子。回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 说到技术基础,我打个比方吧,如果你从来没有学过Java,或是任何一门编程语言如C++,一开始去啃《Core Java》,你是很难从中吸收到营养的,特别是《深入Java虚拟机》这类书,别人觉得好,未必适合现在的你。转载 2016-07-04 12:44:35 · 265 阅读 · 0 评论 -
java线程池基础知识
1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程转载 2016-06-18 20:32:39 · 233 阅读 · 0 评论 -
【Java并发编程】之一:可重入内置锁
每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法。 当某个线程请求一个由其他线程持有的锁时,发出请求的线程就会阻塞。然而,由于内置锁是可重入的,因此如果摸个线程试图获得一个已经由它自己持有的锁,那么这个请求就会成功。“重入”意味转载 2016-06-21 16:04:52 · 212 阅读 · 0 评论 -
线程中断
使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行。 下面一段代码演示了休眠线程的中断:[java]转载 2016-06-21 16:40:07 · 1064 阅读 · 0 评论 -
java 多线程相关问题
java多线程相关问题很多知识还是应该自己进行测试,看看结果,别人的看了印象不是太深刻。java多线程实现的方法:A, 集成Thread类: public class Thread1 extends Thread{}B, 实现Runnable接口: public class Thread1 implements Runnable{}两者之间的差别: A, java不原创 2016-09-10 23:17:45 · 298 阅读 · 0 评论 -
java Thread join方法
Thread.join()是指的是让主线程等待子线程运行结束之后继续执行。我们先来看一看不适用join的情况。public class Test{ public static void main(String[] args0){ Thread1 thread1 = new Thread1(); thread1.start(); } static class Thread1原创 2016-09-11 15:07:26 · 285 阅读 · 0 评论 -
Java volatile关键字
其实今天主要想说的是volatile的读写问题,首先来说一下volatile能解决什么问题,不能解决什么问题。1. volatile能够解决线程中数据读取不一致的问题,我们知道每一个线程都有自己的线程栈,自己在自己的线程栈中存放自己线程中所需要的变量,其实可以理解成计算机硬件中的寄存器,目的是为了减少自己对内存的访问次数,那么线程栈中什么时候进行更新呢?这在线程中称为可见性,下面我们举一个错误原创 2016-09-13 15:17:56 · 234 阅读 · 0 评论 -
Java线程池----mark
最近温习了Java线程池相关的知识,感觉太久没看,都忘了,特此记录。1. Excutor: java线程池的顶层接口,提供了execute(Runnable r)方法。2. ExcutorService: 继承自execute方法的一个接口,是为Executor服务的,用于进行线程的提交(submit),执行(invokeAll,invokeAny)等操作。3. Ab原创 2016-09-14 17:15:02 · 368 阅读 · 0 评论 -
java atomic原理
Atomic 从JDK5开始, java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的)乐观锁而不是synchronized方式的悲观锁.今天有时间跟踪了一下AtomicInteger的incrementAndGet的实现.本人对并发编程也不是特别了解, 在这里就是转载 2016-09-15 13:38:11 · 508 阅读 · 0 评论 -
java中instanceof的用法
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 用法:result = object instanceof class参数:Result:布尔类型。Object:必选项。任意对象表达式。Class:必选项。任意已定义的对象类。说明:转载 2016-07-12 21:00:16 · 176 阅读 · 0 评论 -
Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任转载 2016-06-28 13:55:57 · 206 阅读 · 0 评论 -
java并发
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/17539599 为了方便各位网友学习以及方便自己复习之用,将Java并发编程系列内容系列内容按照由浅入深的学习顺序总结如下,点击相应的标题即可跳转到对应的文章 【Java并发编程】实现多线程的两种方法 【Java并发编程】线程的中断转载 2016-06-06 16:22:06 · 212 阅读 · 0 评论 -
Java并发编程:synchronized
Java并发编程:synchronized 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解决线程安全问题?转载 2016-05-25 12:07:05 · 281 阅读 · 0 评论 -
java向上转型和向下转型
java向上转型和向下转型转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展。向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口向下转型:父类引用的对象转换为子类类型称为向下转型。前者转载 2016-05-20 21:26:04 · 225 阅读 · 0 评论 -
挺不错的一篇关于面向接口编程的文章
我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到“面向接口编程”这个短语,那么它是什么意思?有什么思想内涵?和面向对象编程是什么关系?本文将一一解答这些疑问。1.面向接口编程和面向对象编程是什么关系 首先,面向接口编程和面向对转载 2016-05-20 22:08:40 · 301 阅读 · 0 评论 -
java 异常捕捉
java 异常捕捉 ( try catch finally ) 你真的掌握了吗?前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit() 方法怎么处理?当 catch 和 finally 体里同时遇上 return 怎么办?相信转载 2016-05-21 20:39:08 · 427 阅读 · 0 评论 -
Java多线程学习
目录(?)[-]一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区别四线程状态转换五线程调度六常用函数说明使用方式为什么要用join方法七常见线程名词解释八线程同步九线程数据传递 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。转载 2016-05-21 22:34:06 · 211 阅读 · 0 评论 -
Thread类的使用
Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来、以及如何在Java中怎么创建线程和进程。今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的方法的具体使用。 以下是本文的目录大纲: 一.线程的状态 二.上下文切换 三.Threa转载 2016-05-22 11:52:20 · 2016 阅读 · 0 评论 -
java中volatile关键字的含义
java中volatile关键字的含义在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchron转载 2016-06-26 13:27:39 · 206 阅读 · 0 评论 -
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队转载 2016-06-26 22:34:16 · 174 阅读 · 0 评论 -
深入理解Java虚拟机笔记---运行时栈帧结构
栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附转载 2016-06-27 14:30:51 · 758 阅读 · 1 评论 -
java ArrayList vector 线程安全
java ArraList和Vector有什么区别?或许我们都知道的一点是ArrayList是非线程安全的,而Vector是线程安全的。什么是线程安全呢?线程安全就是多个线程对同一个对象进行插入操作时,同一时间段内只有一个线程能够对其进行操作。我们进行一下测试:使用多个线程同时操作一个ArrayList:import java.util.ArrayList;import java.uti原创 2016-09-16 16:08:39 · 1404 阅读 · 0 评论