Java 基础
cangchen
这个作者很懒,什么都没留下…
展开
-
Java 回调函数作用和使用场景
1. 什么是回调函数 回调函数(callback Function),顾名思义,用于回调的函数。 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。回调函数包含下面几个特性: 1、属于工作流的一个部分;2、必须按照工作流指定的调用约定来申明(定义);3、他的调用时机由工作流决定,回调函数的实现者原创 2015-03-04 17:54:54 · 10216 阅读 · 5 评论 -
【Java基础之多态中静态方法重写问题】java中静态方法的重写问题详解
多态:通过父类变量可以引用其子类对象,从而调用子类中那些继承自自己并被重写(覆盖)的方法。首先来看看以下程序将会打印出什么:class Dog { public static void bark() { System.out.print("Woof "); }}class Basenji extends Dog { public static原创 2015-04-09 15:08:25 · 1704 阅读 · 0 评论 -
【Java基础之集合(三)】集合对象比较大小和比较重复的区别和不同实现
Comparable接口:针对排序list 问题:上面的算法根据什么确定容器中对象的“大小”顺序?所有可以“排序”的类都实现了java.lang.Comparable接口,Comparable接口中只有一个方法Publicint compareTo(Object obj)返回0:表示this==obj返回正数:表示this>obj返回负数:表转载 2015-04-09 16:47:02 · 4354 阅读 · 0 评论 -
【Java基础之数据类型转换】数据类型自动转换和强制转换、及相关常见面试题(如return (short)x / y* 2; 的返回类型)
类型转换Java 语言是一种强类型的语言。强类型的语言有以下几个要求:变量或常量必须有类型:要求声明变量或常量时必须声明类型,而且只能在声明以后才能使用。赋值时类型必须一致:值的类型必须和变量或常量的类型完全一致。运算时类型必须一致:参与运算的数据类型必须一致才能运算。但是在实际的使用中,经常需要在不同类型的值之间进行操作,这就需要一种新的语法来适应这种原创 2015-04-09 14:51:28 · 4287 阅读 · 0 评论 -
【Java基础之内存管理】Java中栈内存与堆内存的区别
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。在堆转载 2015-04-09 17:15:46 · 1024 阅读 · 0 评论 -
【Java基础之String、StringBuilder、StringBuffer】Java中的String、StringBuilder以及StringBuffer的区别
相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方。精炼总结:(1)String对象值是不可追加的,StringBuilder和StringBuffer对象值是可追加的。(2)StringBuffer是线程安全的,StringBuilder是不安全的。(3)String、StringBuilder、StringBuff转载 2015-04-09 16:59:44 · 544 阅读 · 0 评论 -
【Java基础之集合(二)】Java中HashMap详解
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap、H转载 2015-04-09 16:37:39 · 338 阅读 · 0 评论 -
【Java基础之多维数组访问】访问多维数组时潜在的性能问题
[c-sharp] view plaincopyprint?boolean[][] b = new boolean[8000][1000]; long s = System.currentTimeMillis(); for ( int i = 0; i for ( int j = 0; j b[j][i]转载 2015-04-09 15:31:10 · 648 阅读 · 0 评论 -
【Java基础之集合(一)】各种常用集合(Array、ArrayList、HashSet、HashMap、TreeMap等)分析对比
Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。 实现类:8个实现类(实线表示),对接口的具体实现。 在很大程度上,一旦您理解了转载 2015-04-09 15:49:27 · 1507 阅读 · 0 评论 -
【Java基础之finally和return】有return的情况下try catch finally的执行顺序
结论:1、不管有没有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally转载 2015-04-09 14:20:10 · 496 阅读 · 1 评论 -
【Java基础之线程同步(三)】使用ReentrantLock Condition实现线程同步
java的java.util.concurrent.locks包内有Condition接口,该接口的官方定义如下:Condition factors out the Object monitor methods (wait, notify and notifyAll) into distinct objects to give the effect of having multip转载 2015-04-10 13:12:48 · 397 阅读 · 0 评论 -
【Java基础之内部类】Java内部类作用和详解
一、 定义放在一个类的内部的类我们就叫内部类。二、 作用1、内部类可以很好的实现隐藏,因为 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以。2、内部类拥有外围类的所有元素的访问权限3、可是实现多重继承4、可以避免修改接口而实现同一个类中两种同名方法的调用。三、实例1.实现隐藏原创 2015-04-10 11:49:40 · 583 阅读 · 0 评论 -
【Java基础之线程同步(二)】java线程同步:synchronized关键字,Lock接口以及可重入锁ReentrantLock
多线程环境下,必须考虑线程同步的问题,这是因为多个线程同时访问变量或者资源时会有线程争用,比如A线程读取了一个变量,B线程也读取了这个变量,然后他们同时对这个变量做了修改,写回到内存中,由于是同时做修改,就会导致修改的状态不一致.用一个实际的例子来说明线程同步的必要性:package cn.outofmemory.locks;public class LockDemo implemen转载 2015-04-10 13:09:51 · 450 阅读 · 0 评论 -
【Java基础之Object类(二)、线程同步(一)】Java中使用Object类的wait,notify,notifyAll做线程调度
我们知道java中的所有类的祖先都是Object,Object类有四个个方法wait(),wait(long timeout),notify(),notifyAll(),这四个方法可以用来做线程的调度或者说是线程的同步控制。wait() 方法用来控制当前线程停止执行,等待其他线程对此Object实例调用notify或者notifyAll方法之后再继续执行wait(long timeout)转载 2015-04-10 13:06:57 · 1340 阅读 · 0 评论 -
【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
一、Object中所有方法简介:在根类Object中包含一下方法: clone();equals();finalize();getClass();[align=left][/align]notify(),notifyAll();hashCode();toString();wait();我们知道所有的类都是继承于Object,所以我们编写的类默认都具有这些方法,究竟这些方法做什么用,原创 2015-04-10 12:33:32 · 4122 阅读 · 0 评论 -
【Android网络开发】(一)HTTP请求报文和HTTP响应报文
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。or<request-line><headers><转载 2015-03-04 12:16:57 · 5675 阅读 · 3 评论 -
java的war、jar、ear包的作用分别是什么?及eclipse打包war文件方法
war包:是做好一个web应用后,通常是网站,打成包部署到容器中。jar包:通常是开发时要引用通用类,打成包便于存放管理。ear包:企业级应用,通常是EJB打成ear包。所有的包都是用jar打的,只不过目标文件的扩展名不一样。ear本身就是一个包,怎么打成war啊?你是说把要打成ear的包打成war吧?当然可以,不过应该不会被正确解开,即不能运行,原创 2015-03-20 10:11:05 · 6493 阅读 · 0 评论 -
【Java基础之重写equals、hashCode和compareTo方法】什么时候需要重写重写equals方法?为什么重写equals方法,一定要重写HashCode方法?
1.何时需要重写equals()当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。2.设计equals()[1]使用instanceof操作符检查“实参是否为正确的类型”。[2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。[2.1]对于非float和double类型的原语类型域,使用==比较;[2.2]对于对象引用域,递归调用equals方转载 2015-07-03 15:16:21 · 4087 阅读 · 0 评论