![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
苦_咖啡
这个作者很懒,什么都没留下…
展开
-
JAVA的可变类与不可变类
转自:http://www.blogjava.net/hilor/articles/150610.html,讲的很精辟可变类和不可变类(Mutable and Immutable Objects)的初步定义:可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容。不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的转载 2015-04-07 22:07:04 · 965 阅读 · 0 评论 -
广告条效果实现----ViewPager加载大图片(LruCache)以及定时刷新
对于大图片的加载,如果不做处理,可能一两张图片就会导致OOM,应用挂掉;在早期版本中,2.3以前,经常的做法是使用软引用和弱引用集合来处理在内存中加载图片,但是对于Android3.0的版本,Android系统偏向于直接回收掉软引用的对象而不是软引用的成员,这就导致了本做法不再适用。但是好在Android系统同时给出了一个比较好的工具让我们来处理图片的加载:LruCache。原创 2014-11-02 10:32:32 · 3277 阅读 · 1 评论 -
Android自定义控件系列二:自定义开关按钮(一)
这一次我们将会实现一个完整纯粹的自定义控件,而不是像之前的组合控件一样,拿系统的控件来实现;计划分为三部分:自定义控件的基本部分,自定义控件的触摸事件的处理和自定义控件的自定义属性;敬请关注。原创 2014-11-03 10:55:07 · 10341 阅读 · 7 评论 -
程序员编程技术迅速提高的终极攻略
前言你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什转载 2014-10-27 00:06:34 · 838 阅读 · 0 评论 -
用Eclipse 统计代码行数小技巧
今天公司SQA问我目前项目代码行数有多少,我当时就是想,以前好像写过类似的统计工具但是一时又找不到公司网络又不能下载,所以想想eclipse是不是又类似功能,找了下没有,但突然一想有一个转弯方法:统计工程里面的\n个数1. 按 CTRL+H 打开查找对话框 选择file search按下图方式输入注意: I. 输入查找\n, 勾选正则式选项转载 2014-10-09 11:54:49 · 863 阅读 · 0 评论 -
71道经典Android面试题和答案
面试题1. 下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存B、 内存回收程序负责释放无用内存 C、 内存回收程序允许程序员直接释放内存 D、 内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A、ArithmeticExceptionB、IllegalArg转载 2014-10-27 00:24:26 · 1012 阅读 · 0 评论 -
【android】AIDL传递自定义类型参数
Aidl默认支持的类型包话java基本类型(int、long、boolean等)和(String、List、Map、CharSequence),如果要传递自定义类型,首先要让自定义类型支持parcelable协议,实现步骤如下:1>自定义类型必须实现Parcelable接口,并且实现Parcelable接口的public void writeToParcel(Parcel dest, int转载 2014-10-26 16:31:14 · 1311 阅读 · 1 评论 -
Android 使用Parcelable序列化对象
Android序列化对象主要有两种方法,实现Serializable接口、或者实现Parcelable接口。实现Serializable接口是Java SE本身就支持的,而Parcelable是Android特有的功能,效率比实现Serializable接口高,而且还可以用在IPC中。实现Serializable接口非常简单,声明一下就可以了,而实现Parcelable接口稍微复杂一些,但效率更高转载 2014-10-26 16:30:08 · 1066 阅读 · 0 评论 -
Android中消息系统模型和Handler Looper
Android中消息系统模型和Handler Looper 作为Android中大量使用的Handler,结合Thread使其具有众多的使用形式和方法,让我一时感觉这个东西有些玄乎,不明所以然,这到底是一个什么样的存在呢?通过网上资料和源码的学习,这个Handler也差不多弄清楚了,现在总结下这个学习结果。 一 Handler作用和概念通过官方文档转载 2014-10-26 21:50:57 · 680 阅读 · 0 评论 -
Android线程间的通信
andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。 在Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个是android的新概念。我们的主线程(UI线程)就是一个消息循环的线转载 2014-10-26 21:32:57 · 752 阅读 · 0 评论 -
深入理解WeakHashmap
WeakHashmap(一) 查看API文档,WeakHashmap要点如下:1. 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除2. WeakHashMa转载 2014-10-26 20:19:30 · 719 阅读 · 0 评论 -
解决NDK开发中Eclipse报错“Unresolved inclusion jni.h”的最终方法
在做NDK开发过程中有时候在eclipse里会遇到其无法处理inclusion导致symbol显示错误,网上有许多方法可以解决类似“Unresolved inclusion jni.h” 错误的方法,包括include path等方法,不过对我都不管用。最终的解决办法就是初始化eclipse对该project的native support:1. 在eclip转载 2014-10-22 10:22:01 · 1101 阅读 · 0 评论 -
再谈HashMap-由一个实际问题引发的对HashMap设计吐嘈
前言 这一篇主要想讲一讲HashMap在设计上的缺陷以及在使用的过程中留下的一些隐患。也是在实际项目中可能需要注意的一些地方。比如说我下面要介绍的一个containsKey方法,以及List里面其实有一个toArray[]方法返回的是一个Object[]数组的,其实都不是很好用的一种设计,在泛型里有点不伦不类的感觉。项目背景 事情的起因是在项目中因为转载 2014-05-11 22:07:28 · 606 阅读 · 0 评论 -
学习Java必看书籍和步骤
Java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《ThinkinginJava》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者BruceEckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopmentJoltAward最佳书籍大奖,《T转载 2014-05-25 20:36:51 · 760 阅读 · 0 评论 -
String s=new String("abc")创建了几个对象?
String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?相信大家对这道题并不陌生,答案也是众所周知的,2个。接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JAVA知识。 我们可以把上面这行代码分成String str、=、"abc"和new String()转载 2014-08-13 09:08:38 · 493 阅读 · 0 评论 -
Java中的==和equals区别
概述: A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。 B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。 C.基本类型没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true转载 2014-05-06 10:41:19 · 602 阅读 · 0 评论 -
File下的rename()方法。。。靠不住
以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一个copy方法,问题倒是再也没有出现过。 昨天老板同学又遇到这个问题,File#renameTo(File)方法原创 2014-06-28 17:27:43 · 6889 阅读 · 0 评论 -
关于Servlet中getServletContext() 的getResourceAsStream(String path) 方法中的path路径问题
这里的getResourceAsStream(String path) 的path路径经常容易搞错,因为不是eclipse/my原创 2014-07-10 15:07:50 · 6484 阅读 · 0 评论 -
Java性能调优
写Java也有n年了,现在还是有不少的坏的代码习惯,也通过学习别人的代码学到了不少好的习惯。这篇文章主要是整理的资料。留给自己做个警戒,提示以后写代码的时候注意!在文章的后面,会提供整理的原材料下载。一、类和对象使用技巧1、尽量少用new生成新对象 用new创建类的实例时,构造雨数链中所有构造函数都会被自动调用,操作速度较慢。在转载 2014-10-03 21:54:58 · 650 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它转载 2014-10-15 09:36:37 · 892 阅读 · 0 评论 -
JAVA内存结构之运行时栈帧结构
1.1 运行时栈帧结构栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机里面从入栈到出栈的过程。每一个栈帧都包括了局部变量表、操作数栈、方法转载 2015-04-06 21:48:01 · 1097 阅读 · 0 评论 -
【thinking in java】读书笔记(一)
最近开始读tij,好急性不如烂笔头,所以还是记录一下,方便以后查阅。 方法重载的问题: 方法的重载,区别是靠传入方法的参数,而不是返回值。比如f(),如果是返回值的话,容易产生歧义。 方法的重载中,会出现传入参数的类型提升或者降低;比如说如果有个方法可以接受int型,如果传入一个char类型,调用原创 2015-03-18 14:46:57 · 1030 阅读 · 0 评论 -
Fileoutputstream应用中的FileNotFoundException问题备忘
Fileoutputstream也用很久了,今天用的时候却发现FileNotFoundException,研究了一下,发现原因是在new File的时候,上层目录不存在,所以报这个错,于是乎,先要建立上层的目录,然后再去建立Fileoutputstream:File f = new File(absolutePath); File parentFile = f.getParent原创 2015-03-27 21:57:36 · 2500 阅读 · 0 评论 -
HttpClient多线程并发问题
这篇文章概括了怎样在多线程环境下安全的使用HttpClient。建立连接 在HttpClient中使用多线程的一个主要原因是可以一次执行多个方法。在执行期间,每一个方法都使用一个HttpConnection实例。由于在同一时间多个连接只能安全地用于单一线程和方法和有限的资源,我们就必须确保连接分配给正确的方法。而MultiThreadedHttpConnectionM转载 2015-03-27 22:24:47 · 6737 阅读 · 0 评论 -
【翻译】finalize方法到底要干嘛
【翻译】finalize方法到底要干嘛翻译 2015-03-19 17:43:57 · 2588 阅读 · 1 评论 -
Java:单例模式的七种写法
第一种(懒汉,线程不安全): 1 public class Singleton { 2 private static Singleton instance; 3 private Singleton (){} 4 public static Singleton getInstance() { 5 if (instance ==转载 2015-03-03 00:54:18 · 638 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的转载 2015-01-04 16:57:37 · 744 阅读 · 0 评论 -
不区分大小写查找字符串
引用 上次发表了自己编写不区分大小查找的方法,这次使用了String对象中自带的方法regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len),再稍加变通编写了不区分大小写查找的方法。这边比上次写更简洁,效率方面我没有比较。大家可以自己测试下。我个人认为跟上次的比较有区别,这里不转载 2014-12-09 21:52:41 · 3657 阅读 · 0 评论 -
学习JNI--Android下使用JNI调用C
JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。原创 2014-10-23 17:28:55 · 1906 阅读 · 0 评论 -
深入浅出单实例Singleton设计模式
转自:http://blog.csdn.net/haoel/article/details/4028232,作者:陈皓深入浅出单实例Singleton设计模式前序单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,转载 2014-11-27 14:45:31 · 989 阅读 · 0 评论 -
Android自定义控件系列六:自定义ViewGroup(一)实现ViewPager效果
本文介绍如何使用自定义ViewGroup实现ViewPager效果,欢迎拍砖!原创 2014-11-27 11:13:46 · 4961 阅读 · 19 评论 -
Android内存泄漏分析及调试
尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/13017999此文承接我的另一篇文章:Android进程的内存管理分析 首先了解一下dalvik的Garbage Collection:如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Ro转载 2014-11-05 15:40:05 · 899 阅读 · 0 评论 -
Java Thread.join()详解
一、使用方式。join是Thread类的一个方法,启动线程后直接调用,例如:?1Thread t = newAThread(); t.start(); t.join();二、为什么要用join()方法在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,转载 2014-11-05 15:36:23 · 3161 阅读 · 0 评论 -
Java 接口和抽象类区别
转自:http://blog.csdn.net/xw13106209/article/details/69235561.概述一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以转载 2014-11-25 15:26:32 · 961 阅读 · 0 评论 -
Android自定义控件系列一:Android如何实现老版优酷客户端三级环形菜单
本文仿照老版优酷客户端,实现了一个很有意思的三级环形菜单,值得一看~原创 2014-10-24 10:33:56 · 3977 阅读 · 1 评论 -
简单的下拉菜单实现
没什么好说的,都是系统组件组成,代码详尽注解,原创 2014-11-02 16:33:51 · 1211 阅读 · 0 评论 -
getRequestDispatcher 和sendRedirect区别2
request.getRequestDispatcher()是请求转发,前后页面共享一个request response.sendRedirect()是重新定向 前后页面不是一个request getRequestDispatcher是服务器内部跳转,地址栏信息不变,只能跳转到web应用内的网页。 sendRedirect是页面重定向,地址栏信息改变,可以跳转到任意网页。 1转载 2014-07-22 20:16:39 · 635 阅读 · 0 评论 -
Scanner和BufferedReader的区别和用法
在命令行模式下要输入数据至程序中时,我们可以使用标准输入串对象System.in.但是,我们并不经常直接使用它,因为System.in提供的 read方法每次只能读取一个字节的数据,而我们平时所应用的通常是读取一个字符串或者是一个数字,所以read方法所以提供的功能,对我们来说并没有太 大的用处. 在Java SE 6中,可以使用Scanner类取得用户的输入,Scanner类位于ja转载 2014-08-17 14:56:01 · 10701 阅读 · 5 评论 -
Java中的原始类型和相应的封装类,int--Integer等
java.lang.Integer是一个类.对它的操作要通过类的方法 int是JAVA缺省的8中基本数据类型之一.不是类的对象.int是基本数据类型,Integer是对int进行了封装的一个类。 声明为int的变量不需要实例化,声明为Interger的变量需要实例化 int是基本类型,Integer是包装类,也就是类。Integer 是比int 更高级的原创 2014-04-23 16:57:06 · 1571 阅读 · 0 评论 -
Java中对象间类型是否相等的比较:instanceof的特点
instanceof一般用于强制类型转换之前,原创 2014-04-24 22:49:45 · 7432 阅读 · 0 评论