![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 69
韦大爷
桂林电子科技大学10级,交流QQ:924097675
展开
-
Java—final,finally,finalize的区别
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finally—转载 2014-12-17 20:10:49 · 378 阅读 · 0 评论 -
Java—传统定时器的简单使用
1.我们有时候用到定时器,比如,定时一段时间,发送message,使用定时器却很简单,如下new Timer().schedule(new TimerTask(){@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.println("bombing!");}}, 1000,原创 2015-02-11 20:32:24 · 403 阅读 · 0 评论 -
Java—Java中&&和&以及||和|的区别
在java的逻辑运算符中,有这么四类:&&(短路与),&(与),|(或),||(短路或)。&&和&都是表示与,区别是&&只要满足第一个条件,后面条件就不再判断。而&要对所有的条件都进行判断。看下面的程序:“&”操作:Java代码 public class OperateDemo01{ /** 验证"与" 操作 说明:"与"转载 2015-02-20 22:30:14 · 510 阅读 · 0 评论 -
Java—String与StringBuffer的区别
在java内存机制的常量池中String s="helloworld";//先在池中找有没有这个常量字符串,有的话,把字符串的引用s指向"helloworld"的首地址。如果没有就把"helloworld"字符串放入池中,在把他的地址返回给s引用。String str1=new String("helloworld");String str2=new String("h转载 2014-12-17 20:05:31 · 434 阅读 · 0 评论 -
Java—传统线程互斥技术synchronized
Java语言的关键字,可用来给对象和方法或者代码块加锁。1、当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。2、当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。3、当一个线程访问object的一个加锁代码块时,另一个线程仍然可以访问该obje原创 2015-02-12 08:35:40 · 363 阅读 · 0 评论 -
Java—传统线程简单使用
java语言创建线程有两种方法:1.继承thread类,重写父类的run方法,覆盖父类的run方法//1.new thread的子类Thread thread = new Thread(){@Overridepublic void run() {// TODO Auto-generated method stubwhile(true){System.out.prin原创 2015-02-11 20:18:56 · 459 阅读 · 0 评论 -
Java—线程池的简单使用
package cn.itcast.heima;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class TreadPoolTest {/***原创 2015-02-13 11:23:31 · 368 阅读 · 0 评论 -
Java—Callable,Future的使用
package cn.itcast.heima;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutionException;import java.原创 2015-02-13 17:54:04 · 353 阅读 · 0 评论 -
Java—线程锁技术
先看代码package cn.itcast.heima;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;import cn.itcast.heima.TraditionalThreadSynchronized.Outputer;public class L原创 2015-02-14 08:42:34 · 406 阅读 · 0 评论 -
【Java线程】锁机制:synchronized、Lock、Condition
Java多线程http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁 http://www.ibm.com/developerworks/cn/java/j-jtp10264/ Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制http://blog.csd转载 2015-02-14 08:57:29 · 401 阅读 · 0 评论 -
Java—Semaphore实现信号灯
Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。Semaphore实现的功能就类似厕所有5个坑,假如有十个人要上厕所,那么同时能有多少个人去上厕所呢?同时只能有5个人能够占用,当5个人中的任何一个人让开后,其中在等待的另外5个人中又有一个可以占用了。另外等待的5个人中可以是随机获得转载 2015-03-01 16:46:02 · 933 阅读 · 1 评论 -
Java—java中如何安全的结束一个正在运行的线程
问题 Java中提供了很多调度线程的方法,上一节介绍了其中一种控制线程的方法:如何等待一个线程结束。那么如果不希望等待线程结束,而是根据问题的需要随时都要中断线程使其结束,这种对线程的控制方法该如何实现呢? 解决思路 首先必须先明确“中断”这个概念的实际含义,这里的中断是指一个线程在其任务完成之前被强行停止,提前消亡的过程。查阅JDK的帮助文档,可以找到这样一个和中断有关的方法:转载 2015-03-05 19:57:01 · 1523 阅读 · 0 评论 -
Java—面向对象设计的几个基本的原则
A:单一职责系统中的每一个对象应该只有一个单独的职责,所有对象关注的应该是自身职责的完成。基本思想:高内聚,低耦合。B:开闭原则一个对象对扩展开放,对修改关闭。基本思想:对类的改动是通过增加代码进行的,而不是修改现有的代码。C:里氏替换原则在任意父类出现的地方,都可以使用子类来替代。D:依赖注入原则要依赖于抽象,不要依赖于具体的实现。基本思想:在开发中尽量的转载 2015-03-27 21:52:24 · 321 阅读 · 0 评论 -
Java—java中单例模式
概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、转载 2014-12-17 20:11:06 · 408 阅读 · 0 评论 -
Java—说说对javaee中的session的理解,你是怎么用session的
在服务器上,通过Session来区分每一个上网用户用户只要一连接到服务器,则立刻分配一个Session给用户Session主要方法:1 服务器上通过Session来分别不同的用户-->Session ID任何连接到服务器上的用户,服务器都会位之分配唯一的一个不会重复的Session IDSession ID是由服务器统一管理的,人为不能控制方法:session.getI转载 2015-03-10 17:32:42 · 2073 阅读 · 0 评论 -
Java—设计模式(单例模式)
概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍2种:懒汉式单例、饿汉式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象转载 2016-02-11 11:58:09 · 446 阅读 · 0 评论 -
Java—设计模式(工厂模式)
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方法模式(Factory Method):又称为多形性工厂;3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利转载 2016-02-11 22:34:33 · 378 阅读 · 0 评论 -
Java—读写锁的简单使用
package cn.itcast.heima;import java.util.Random;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class ReadWriteLockTest {原创 2015-02-16 21:47:06 · 561 阅读 · 0 评论 -
Java—Java多线程中join方法的理解
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //使调用线程 t 在此之前执行完毕。t.join(1000); //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码:Java代码转载 2015-02-21 22:54:12 · 384 阅读 · 0 评论 -
Java—java编程集合的比较
1.Lisk集合类 与 Map集合类的区别:List没有键值,Map有键值。键值为了唯一标识事物而单独添加的属性一定不要用事物本身的属性来做键值2.ArrayList和Vector的区别与HashMap和Hashtable的区别相同他们是:ArrayList和HashMap都是线程异步的,所以特点是:效率高,但是安全性低Vecto原创 2014-12-17 20:12:34 · 611 阅读 · 0 评论 -
Java—java中如何实现动态数组的创建与赋值
最近,项目中需要实现:提取一组数据,每个数组都有自己的属性,这组数据的长度又未知,还可能变长,变短,我考虑一会,实现如下;1.在oncreate前面,我声明两个数组String data1[ ][ ];//使用的时候,比如和adapter关联String data2[ ][ ];//提取数据,我这里是Poisaerh出来的数据2.实例化数组,提取数据,判断二维数据的维数原创 2015-01-12 16:30:56 · 20681 阅读 · 0 评论 -
Java—java中重载与重写的区别
首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。 (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不转载 2014-12-17 22:28:28 · 387 阅读 · 0 评论 -
Java—JAVA设计模式之单例模式
概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、转载 2014-12-16 17:35:17 · 363 阅读 · 0 评论 -
Java—Junit测试框架
1.新建一个java工程2.新建一个包,包名为:com.ecpana3.新建三个文件,分别为Demo1.java Person.java PersonTest.java4.在Person.java里面写两个方法public void eat(){System.out.println("eat-----------------");}publ原创 2015-02-03 21:53:28 · 421 阅读 · 0 评论 -
Java—float数据在内存中的存储方法
浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。一个浮点数由2部分组成:底数m 和 指数e。 ±mantissa × 2exponent (注意,公式中的mantissa 和 exponent使用二进制表示)底数部分 使用2进制数来表示此浮点数的实际值。指数部分 占用8-bit的二进制转载 2015-02-20 16:06:20 · 4907 阅读 · 3 评论 -
Java—使用System.arraycopy()实现数组之间的复制
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置转载 2015-02-20 16:50:23 · 463 阅读 · 0 评论 -
Java—用实例揭示notify()和notifyAll()的本质区别
notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法。两者的最大区别在于:notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。notify则文明得多他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的转载 2015-02-22 12:58:35 · 3417 阅读 · 0 评论 -
Java—多线程(二)、线程的生命周期和状态控制
一、线程的生命周期线程状态转换图:1、新建状态用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。注意:不能对已经启动的线程再次调用start()方法,否则会出现java.lang.IllegalThreadStat转载 2015-02-22 13:04:36 · 524 阅读 · 0 评论 -
Java—深入探讨equals
equals方法的重要性毋须多言,只要你想比较两个对象是不是同一对象,你就应该实现equals方法,让对象用你认为相等的条件来进行比较.下面的内容只是API的规范,没有什么太高深的意义,但我之所以最先把它列在这儿,是因为这些规范在事实中并不是真正能保证得到实现.1.对于任何引用类型, o.equals(o) == true成立.2.如果 o.equals(o1) == tr转载 2015-02-21 10:12:16 · 449 阅读 · 0 评论 -
Java—Timer和TimerTask详解(常用API)
以下内容根据 The JavaTM Tutorial 和相关API doc翻译整理,以供日后参考:1.概览Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。简单的一个例程:import java.util.Timer;im转载 2015-02-23 12:32:25 · 2644 阅读 · 0 评论 -
Java—hashCode与equals的区别与联系
一、equals方法的作用 1、默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。2 、要是类中覆盖了equals方法,那么就要根据具体的代码来确定equals方法的作用了,覆盖后一般都是通过对象的内容是否相等来判断对象是否相转载 2015-02-22 23:40:01 · 489 阅读 · 0 评论 -
Java—Lock&Condition的使用
package cn.itcast.heima;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Re原创 2015-02-17 10:04:48 · 672 阅读 · 0 评论 -
Java—"==" 与 equals区别
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。equest方法是用于比较两个独立对象的内容是否相同。例如:String a=new String("abc");String b=new String("abc");两条new语句创建了两个对象,然后用a,b这两个变量分别指转载 2015-02-20 17:23:30 · 420 阅读 · 0 评论 -
Java—简单的缓存系统
private ReadWriteLock rwl = new ReentrantReadWriteLock();public Object getData(String key){rwl.readLock().lock();Object value = null;try{value = cache.get(key);if(value == null){rwl.rea原创 2015-02-16 21:58:36 · 403 阅读 · 0 评论 -
Java—try catch finally 用法
trycatchfinally1、将预见可能引发异常的代码包含在try语句块中。2、如果发生了异常,则转入catch的执行。catch有几种写法:catch这将捕获任何发生的异常。catch(Exception e)这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。catch(Exception的派生类 e)转载 2015-02-16 22:10:14 · 495 阅读 · 0 评论 -
Java—java方法重载
什么是方法的重载?方法重载是以统一的方式处理不同数据类型的一种手段。怎样构成方法的重载?方法名相同, 形参不同。而形参的不同又表示在: 1). 形参的个数不同 2). 形参的类型不同 3). 形参的顺序不同注意事项1. 如果两个方法的返回值不同, 而其他都相同。 这个时候并不构成方法的重载。 在编译的时候会报错:示例代码(错误):Test.java复制代码 代码如下转载 2016-02-12 23:32:56 · 644 阅读 · 0 评论