进击的兔子之JAVA基础
文章平均质量分 85
rabbit_in_android
这个作者很懒,什么都没留下…
展开
-
并发编程
兰亭风雨转载 2016-04-23 20:58:06 · 260 阅读 · 0 评论 -
进程与线程,同步与死锁,生产者消费者模式
1 进程与线程,同步与死锁,生产者消费者模式,等待wait与唤醒notify《开实》:线程的5中状态:创建new,就绪start(),运行run(),阻塞,死亡进程就是程序的一次执行,而线程可以理解为进程中的执行的一段程序片段。用一点文词说就是,每个进程都有独立的代码和数据空间(进程上下文);而线程可以看成是轻量级的进程。一般来讲(不使用特殊技术),同一进程所产生的线转载 2015-12-05 09:51:52 · 1804 阅读 · 0 评论 -
JNI
JNI概述JNI 是Java Native Interface的缩写,中文译为“Java本地调用”。通常使用JNI技术可以做到以下两点:(1)Java程序中的函数可以调用Native语言函数,Native函数一般指的是C/C ++编写的函数;(2)Native程序中的函数可以调用Java层的函数,也就是说在C/C++程序中可以调用Java层函数。当然任何事物都有两面转载 2015-12-04 21:27:19 · 218 阅读 · 0 评论 -
Looper、Handler、Message以及消息队列模型
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自【张鸿洋的博客】很多人面试肯定都被问到过,请问Android中的Looper , Handler , Message有什么关系?本篇博客目的首先为大家从源码角度介绍3者关系,然后给出一个容易记忆的结论。1、 概述Handler 、 Lo转载 2015-11-14 21:56:58 · 665 阅读 · 0 评论 -
Thread、AsycTask、IntentService的比较
IntentService 是Serivce+handler的结合产物 AsyncTask是thread+handler的结合产物 为什么用service而不用thread:android 的系统机制有关,我们先拿 Thread 来说 Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后 ,如果你没有主动停止 Thread 或者 Thr转载 2015-11-19 08:54:06 · 1981 阅读 · 1 评论 -
ThreadLocal
ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副转载 2015-12-21 16:10:34 · 344 阅读 · 0 评论 -
ThreadPool
new Thread的弊端如下:a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c. 缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线程池的好处在于:a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。b. 可有效控制最转载 2015-12-21 15:22:48 · 451 阅读 · 0 评论 -
关于多态的一道题
现上一道面试题public class MainClass { public static void main(String[] args) { Fu f = new Zi(); Zi z = new Zi(); System.out.println("f.num:"+f.num); System.out转载 2016-01-19 10:24:21 · 356 阅读 · 0 评论 -
Java并发知识——Concurrent包
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]什么是原子操作? Java Concurrency API中有哪些原子操作类?原子操作是执行单个任务单元的操作,这个操作不需要干扰其他操作,可以理解为当前情况下不可再分的操作,远在操作是多线程环境下避免数据不一致而存在的必需品。int++就不是原子操作,如果一个线程读转载 2015-12-28 21:13:57 · 2780 阅读 · 0 评论 -
wait()和sleep()的区别
1、来自不同的类这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。2、有没有释放锁(释放资源)最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制转载 2015-12-05 09:18:17 · 619 阅读 · 0 评论 -
反射
Java 反射机制主要提供了以下功能:•在运行时判断任意一个对象所属的类。•在运行时构造任意一个类的对象。•在运行时判断任意一个类所具有的成员变量和方法。•在运行时调用任意一个对象的方法Java 程序可以加载一个运行时才得知名称的 class,获悉其完整构造(但不包括 methods 定义),并生成其对象实体、或对其 fields 设值、或唤起其methods。原创 2015-12-23 09:02:53 · 337 阅读 · 0 评论 -
JAVA基础知识点(自己总结的)
版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处:http://blog.csdn.net/ns_code/article/details/88466971、使用浮点型数值时,默认的类型是double,后面加上f或F才被识别为float类型。2、使用数组前一定要先开辟内存空间,当然也可以直接用静态赋值的方式。3、Java中的基本数据类型变量为全转载 2016-04-21 15:42:11 · 368 阅读 · 0 评论 -
帮你理清Java中字符与字节的编码关系
版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处:http://blog.csdn.net/ns_code/article/details/14162087 首先,java中的一个char是2个字节。java采用unicode,2个字节来表示一个字符,这点与C语言中不同,C语言中采用ASCII,在大多数系统中,一个char通常占1个字节,但是在0~1转载 2016-04-21 15:38:53 · 1491 阅读 · 1 评论 -
Java TCP/IP Socket编程
版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处:http://blog.csdn.net/ns_code/article/details/17526127 为了方便各位网友学习以及方便自己复习之用,将Java TCP/IP Socket编程系列内容按照由浅入深的学习顺序总结如下,点击相应的标题即可跳转到对应的文章:【Java TC转载 2016-04-20 22:10:28 · 326 阅读 · 0 评论 -
泛型
Java的泛型机制是与C++不同的,它采用的是擦除机制,所以泛型在java中是一种折中的处理方案,而不是java本身的一种特性。由于采用的擦除机制,所以在运行时,对使用泛型的对象进行类型判断是有很严重的问题的。例如:[java] view plaincopyprint?List list1=new ArrayList(); List原创 2015-11-24 21:19:48 · 638 阅读 · 1 评论 -
异常处理机制
Java 异常处理通过 5 个关键字 try、catch、throw、throws、finally 进行管理。基本过程是用 try 语句块包住要监视的语句,如果在 try 语句块内出现异常,则异常会被抛出,你的代码在 catch 语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在 Java 运行时自动抛出。你也可以通过throws 关键字在方法上声明该方法要抛出异常,然转载 2015-12-23 09:57:18 · 371 阅读 · 0 评论 -
多线程及线程周期和多线程并发
多线程是 java 应用程序的一个特点, 掌握 java 的多线程也是作为一 java程序员必备的知识。多线程指的是在单个程序中可以同时运行多个同的线程执行不同的任务.线程是程序内的顺序控制流, 只能使用分配给序的资源和环境。 还记得刚开始学习的时候总是和进程分不清, 总是对这两个名词所迷惑。下面就首先对这两个名词区分来作为本篇博客的开始:一、线程与进程的区别多个进程的内部数据和状转载 2015-12-23 09:23:52 · 1325 阅读 · 0 评论 -
内存泄露及调试
一、内存问题很多时候我们是需要查看自己的应用内存占用情况,比如当出现闪退,异常退出时:1、界面内存占用:比如我们的启动画面,如果出现OOM的问题,这个时候可以通过差看内存情况,如果确是内存占用比较大就可以考虑做相应优化2、内存泄漏的初步查找:这个和直接的OOM有些差别,虽然他最终也会导致OOM。方法:反复打开、关闭可能内存泄漏的界面,如果每次打开关闭之后内存都有所增转载 2015-12-05 09:08:17 · 515 阅读 · 0 评论 -
foreach
从Java5起,在Java中有了for-each循环,可以用来循环遍历collection和array。For each循环允许你在无需保持传统for循环中的索引,或在使用iterator /ListIterator时无需调用while循环中的hasNext()方法就能遍历collection。Java中,for-each循环简化了任何Collection或array的遍历过程,但并不是每个Jav转载 2016-01-19 20:17:19 · 420 阅读 · 0 评论 -
Concurrent包
我们平时写程序需要经常用到集合类,比如ArrayList、HashMap等,但是这些集合不能够实现并发运行机制,这样在服务器上运行时就会非常的消耗资源和浪费时间,并且对这些集合进行迭代的过程中不能进行操作,否则会出现错误。程序在执行过程中会报错, 因为定义了一个ArrayList类型的集合,但是在对集合进行迭代的时候又出现了users.remove(user),即从集合从删除数据,对于转载 2015-12-04 20:56:45 · 498 阅读 · 0 评论 -
生产者消费者模式和阻塞队列
这一章节我们来讨论一下阻塞队列。我们下面将通过生产者消费者模式来介绍阻塞队列。1.什么是阻塞队列?(摘自于并发编程网对http://tutorials.jenkov.com/java-concurrency/blocking-queues.html的翻译)当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素转载 2016-01-19 17:17:33 · 419 阅读 · 0 评论 -
Thread、Runnable以及线程的生命周期
首先 Thread是类,Runable是接口。线程的起动并不是简单的调用了你的RUN方法,而是由一个线程调度器来分别调用你的所有线程的RUN方法,我们普通的RUN方法如果没有执行完是不会返回的,也就是会一直执行下去,这样RUN方法下面的方法就不可能会执行了,可是线程里的RUN方法却不一样,它只有一定的CPU时间,执行过后就给别的线程了,这样反复的把CPU的时间切来切去,因为切换的速度很快,原创 2015-11-21 14:54:28 · 7955 阅读 · 0 评论 -
Switch用String做参数
Switch能否用String做参数?参数可以是整数表达式,JDK1.5开始支持Enum类,JDK1.7开始支持String。当字符串不会频繁改变时可以用枚举来代替String:用Enum.parse。 public enum Weekend { Monday, Tuesday, Friday, }原创 2015-11-12 09:05:49 · 6893 阅读 · 0 评论 -
九种基本数据类型,以及他们的封装类
基本类型大小(字节)默认值封装类byte1(byte)0Byteshort2(short)0Shortint40Integerlong80LLongfloat40.0fFloatdouble80.0dDoubleboolean-原创 2015-11-12 08:27:30 · 12528 阅读 · 0 评论 -
Comparable和Comparator以及Arrays.sort方法
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位于包转载 2015-12-11 14:53:30 · 658 阅读 · 0 评论 -
抽象和接口
抽象类特征:1.抽象类和抽象方法都必须用abstract关键字来修饰。2.抽象类不能被实例化,也就是不能用new关键字去产生对象。3.抽象方法只需声明,而无需实现.4.抽象方法必须定义在抽象类中,抽象类的子类必须实现父类中的抽象方法,否则这个子类还是个抽象类。 接口的特征如下:1.接口没有构造方法。2.接口中声明变量均为终极(final)原创 2015-11-21 19:35:58 · 1393 阅读 · 0 评论 -
Override和Overload
Override和Overload的区别?Overloaded的方法是否可以改变返回值的类型? (1)方法的重写Override和重载Overload是Java多态性的不同表现。 override是方法覆盖,用在父子类中,是方法名字相同,参数列表也相同,声明形式都相同,但是子类方法的权限不允许小于父类,不允许抛出比父类更多的异常。调用子类的方法与父类的同名方法无关,原创 2015-11-21 19:16:46 · 433 阅读 · 0 评论 -
Java的NIO
Java IO一般包含两个部分:1.java.io包中堵塞型IO;2.java.nio包中的非堵塞型IO,通常称为New IO。学过操作系统的朋友都知道系统运行的瓶颈一般在于IO操作,一般打开某个IO通道需要大量的时间,同时端口中不一定就有足够的数据,这样read方法就一直等待读取此端口的内容,从而浪费大量的系统资源。有人也许会提出使用java的多线程技术啊!但是在当前进程中创建线程也是要花费一定原创 2015-11-15 09:30:27 · 321 阅读 · 0 评论 -
Java的IO
java.io包中最重要的是五个类和一个接口:File、OutputStream、InputStream、Writer、Reader和Serializable。《开实》P399原创 2015-11-14 22:01:11 · 374 阅读 · 0 评论 -
String、StringBuilder、StringBuffer
String是不可变类的原因:Java把String设成immutable最大的原因应该是效率和安全。1).不可变对象可以提高String Pool的效率和安全性。如果你知道一个对象是不可变的,那么需要拷贝这个对象的内容时,就不用复制它的本身而只是复制它的地址,复制地址(通常一个指针的大小)需要很小的内存效率也很高。对于同时引用这个“ABC”的其他变量也不会造成影响。2).转载 2015-11-17 21:43:51 · 492 阅读 · 0 评论 -
Collection、Map、Iterable
数组(Array)1、效率高,但容量固定且无法动态改变。array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。2、Java中有一个Arrays类,专门用来操作array。 arrays中拥有一组static函数, equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。转载 2015-11-20 08:37:05 · 1471 阅读 · 0 评论 -
Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
版权声明:本文为博主原创文章,未经博主允许不得转载。继续并发专题~FutureTask 有点类似Runnable,都可以通过Thread来启动,不过FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞。由于:FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞这两个特性,我们可以用来预先加载一些转载 2015-12-18 11:51:10 · 402 阅读 · 0 评论 -
Java 并发专题 : Semaphore 实现 互斥 与 连接池
版权声明:本文为博主原创文章,未经博主允许不得转载。继续并发方面的知识。今天介绍Semaphore,同样在java.util.concurrent包下。本来准备通过例子,从自己实现到最后使用并发工具实现,但是貌似效果并不是很好,有点太啰嗦的感觉,所有准备直入主题。介绍:Semaphore中管理着一组虚拟的许可,许可的初始数量可通过构造函数来指定【new Semaph转载 2015-12-18 11:38:50 · 293 阅读 · 0 评论 -
equals和==
==比较的是两个变量的值,若是引用变量则比较两个变量在堆中的存储地址是否相同,即栈中的内容是否相同(变量(栈)内存中存放的对象的(堆)内存地址)equals比较的是是否是对同一个变量的引用,即堆中的内容是否相同(==比较的是2个对象的地址,而equals比较的是2个对象的内容。)基本数据类型及其封装类的比较基本数据类型的比较只能用==,不能用equals(会编译报错原创 2015-11-13 09:30:22 · 332 阅读 · 0 评论 -
Static class 与non static class的区别
内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。根据Oracle官方的说法:Nested classes are divided into转载 2015-12-04 20:51:58 · 3370 阅读 · 0 评论 -
equals与hashCode
默认情况下,Object中的hashCode() 返回对象的32位jvm内存地址。重写equals():public boolean equals(Object o) { if(o == null) { return false; } if (o == this) {原创 2015-11-13 10:23:04 · 484 阅读 · 0 评论 -
Object公用方法
Object方法:equals()、hashCode()、toString()、notify()、notifyAll()、finalize()、getClass()、clone()、wait()下面看源码:package java.lang; public class Object { /* 一个本地方法,具体是用C(C++)在DLL中实现的,然后原创 2015-11-14 09:23:11 · 977 阅读 · 0 评论 -
Error和Exception
1、finally{}会在catch完成后执行;2、catch中有return,catch后有finally{}————finally中内容,会在return前执行;一、简介Java为我们提供了非常完美的异常处理机制,使得我们可以更加专心的去写程序,有的时候遇到需要添加异常处理块的地方,像eclipse会自动提示你,感觉很幸福!我们看看异常处理的一些类的结构组成:转载 2015-11-22 10:18:56 · 788 阅读 · 0 评论 -
Collection和Collections区别
java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的C原创 2016-01-18 21:13:05 · 442 阅读 · 0 评论 -
java的四种引用
一.四种引用类型的解释:JVM会持有一般对象直到他们不再是可触及的状态。换句话说,当没有任何有效引用指向他们的时候会被垃圾回收,无效引用不会被计算在内。软引用指向的对象会在不存在任何指向他们的引用并且内存空间不足情况下被垃圾收集。大多数情况下被用来实现内存敏感的缓存。没有GC的时间限制,会在OOM发生之前清理完毕。弱引用指向的对象会在没有任何引用指向他们的时候立即被垃圾收集。如果一转载 2015-11-14 09:46:51 · 2144 阅读 · 0 评论