java
思念叨火车
这个作者很懒,什么都没留下…
展开
-
Java设计模式透析之 —— 单例(Singleton)
写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上线后还可以帮助你分析数据。但是Java原生带有的System.out.println()方法却很少在真正的项目开发中使用,甚至像findbugs等代码检查工具还会认为使用System.out.println()是一个bug。 为什么作为Java新手神器的System.out.println(),到了真正项目开发当中会被唾弃呢?其转载 2016-06-08 09:53:53 · 295 阅读 · 0 评论 -
Java 多态:动态绑定 及 内部实现机制
Java多态机制的实现依赖于其动态绑定。 (本文默认读者已经了解Java程序的编译和运行时问题。)1、程序绑定的概念 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。 对Java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。2、静态绑定与动态绑定(1)静态绑定: 在程序执行前方法已经被绑定到具体的类,由编译器或其它连接程序实现。例如:C语言。 Jav原创 2016-12-07 15:25:41 · 670 阅读 · 0 评论 -
探秘Java中String、StringBuilder以及StringBuffer
相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String、StringBuilder和StringBuffer这几个类,分析它们的异同点以及了解各个类适用的场景。下面是本文的目录大纲: 一.你了解String类吗? 二.深入理解String、StringBuffer、StringBuilder 三.不同场景转载 2016-09-06 18:13:00 · 555 阅读 · 0 评论 -
Java并发编程:Lock
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchroni转载 2016-09-05 11:52:00 · 389 阅读 · 0 评论 -
Java并发编程:Thread类的使用
一.线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。 线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(blocked)、time waiting、waiting、消亡(dead)。转载 2016-09-03 11:32:03 · 480 阅读 · 0 评论 -
java 并发编程:线程间的协作 wait()+notify()/notifyall() 和 Condition
线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生产者交出对临界资源的占用权,并进入挂起状态。然后等待消费者消费了商转载 2016-07-14 14:07:47 · 429 阅读 · 0 评论 -
java 多线程总结(二) 线程阻塞的方法
1.join()join —— 让一个线程等待另一个线程完成才继续执行。如A线程执行体中调用B线程的join()方法,则A线程被阻塞,直到B线程执行完为止,A才能得以继续执行。 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 5 MyRunnab转载 2016-07-13 17:56:52 · 6655 阅读 · 0 评论 -
java 多线程总结(一) 创建线程的几种方法及对终止线程运行的讨论
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的。一.线程的生命周期及五种基本状态关于Java中线程的生命周期,首先看一下下面这张较为经典的图:上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括:Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入转载 2016-07-13 15:44:06 · 5216 阅读 · 0 评论 -
java并发: volatile 关键字 完全解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们转载 2016-07-13 17:41:34 · 405 阅读 · 0 评论 -
java-类型转换小结
Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。Java中数据类型主要分为两大类:基本数据类型和引用数据类型。基本数据类型共有8种,分别转载 2016-07-13 14:28:09 · 416 阅读 · 0 评论 -
Java 学习之 多态性的理解
一、多态的概念:面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。多态的定义:指允许不同 class 的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其转载 2016-06-06 15:42:23 · 335 阅读 · 0 评论