自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎关注微信公众号:DroidMind

技术干货,工具分享

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java中线程基本知识整理

1、什么是线程线程是正在执行的程序的主体。每个计算机程序至少有一个线程,它就是运行应用程序本身的线程。在Java中,这个线程称为“main thread”,即主线程,它是以执行程序的main()这个方法开始的。在java中,每个程序都有一个以上的线程,这些线程可能连开发者自己也觉察不到,例如运行garbage collection和编译java bytecode成机器指令之类的线程。2、线程的启动线

2015-12-07 21:12:10 542

原创 【git系列】git基本操作-3

上面我们得到了项目的git仓库之后,我们就会对这个项目进行开发,并且使用git来进行管理,那么接着来看看如何使用git进行管理和操作。假设我们已经使用git clone获取到了一个git仓库的本地拷贝,下面,我们在这个项目的基础上进行一些开发操作,对一些文件作出了修改,在完成开发操作之后,我们需要提交本次更新到本地仓库中。在工作目录下,所有文件只有两种状态:已跟踪或未跟踪 已跟踪的文件是本地项目

2015-12-28 20:06:57 626

原创 【git系列】获取项目的git仓库-2

完成了基本的安装和配置之后,下面我们就开始来使用了。有两种取得 Git 项目仓库的方法:1、在本地项目工作目录中初始化新仓库要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:git init例如,如果现在有一个TestDemo项目,我们我们需要执行下面命令:cd TestDemogit init初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资

2015-12-28 17:10:55 4336

原创 【git系列】git的安装与配置-1

安装在 Ubuntu 这类 Debian 体系的系统上,可以用 apt-get 安装:apt-get install git配置Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方: /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置

2015-12-28 14:01:51 825

转载 15款android设备上的代码编辑器

如果你希望你的Android设备,如智能手机和平板电脑,在任何时间和任何地方都能够编写代码,那么,不妨看看下面我将介绍的15款Android代码编辑器,它们必将成为你的理想工具。1.Deuter IDE一款基于移动开发的文本编辑器,在线编译器,内置支持Android的集成开发环境。它的虚拟按键可提供常用的编程符号和语法高亮功能,并支持超过40种编程语言,从而能让你在旅途中写代码变得从未如此简单。

2015-12-27 12:09:31 65337 1

原创 安装MATLAB R2013a(Linux, Mac)

1、下载matlab http://pan.baidu.com/s/1pKlxj9T2、下载完成后将文件中的iso文件挂载到Linux sudo mkdir /media/matlab sudo mount -o loop [path][filename].iso /media/matlab cd /media/matlab sudo ./install3、在终端中切换

2015-12-26 11:13:04 5083

原创 Ubuntu基本问题总结(持续更新)

一、UBUNTU的默认root密码是多少,修改root密码1、默认root密码是随机的,即每次开机都有一个新的root密码。2、在终端输入命令 sudo passwd,按回车。3、输入新密码,重复输入密码,最后提示passwd:password updated sucessfully4、此时已完成root密码的设置,输入:su root。切换到root用户。二、ubuntu运行android stu

2015-12-25 16:35:57 548

原创 使用U盘安装Ubuntu

一、下载Ubuntu http://www.ubuntu.com/download二、制作U盘启动通过上面的下载,得到一个ISO文件,下面就是将这个ISO文件制作一个U盘启动盘。1、使用UltraISO制作制作(1)用UltraISO软件的“启动”中的:写入硬盘映像;选择usb-HDD,点击写入。完成后退出软件即可。(2)设置电脑U盘启动,就可以安装啦。2、使用Universal-USB-In

2015-12-25 10:54:26 1125

原创 Ubuntu下为Firefox安装Adobe Flash Player

一、根据浏览器提示下载Adobe Flash Player 二、选择下载对应系统版本,这里选择.tar.gz三、执行下面命令进行解压tar -zxvf install_flash_player_11_linux.x86_64.tar.gz解压出来有以下文件 四、打开readme.txt文件,我们可以看到安装步骤。 (1) 将libflashplayer.so拷贝到Firefox的Plugin目

2015-12-24 22:22:26 3910

转载 Android程序猿必看之《终端应用开发指南》

一、前言4G移动网络的商用为移动互联网的蓬勃生长提供了肥沃的土壤,并协同国内外众多互联网厂商及终端厂商共同引领了中国移动互联网翻天覆地的发展与创新。2014年以来移动4G用户数目显著提升,拉动了全网用户的流量增长,同时随着流量资费的下降,运营商将与优秀APP互助互惠:更充足更宽带宽的数据业务促进用户对移动终端APP的使用,而优秀的APP则会拉动移动互联网流量的进一步增长。2016年中国智能手机用户预

2015-12-22 11:17:56 7314

转载 关于Android中工作者线程的思考

在Android中,我们或多或少使用了工作者线程,比如Thread,AsyncTask,HandlerThread,甚至是自己创建的线程池,使用工作者线程我们可以将耗时的操作从主线程中移走。然而在Android系统中为什么存在工作者线程呢,常用的工作者线程有哪些不易察觉的问题呢,关于工作者线程有哪些优化的方面呢,本文将一一解答这些问题。工作者线程的存在原因因为Android的UI单线程模型,所有的

2015-12-21 15:43:51 582

转载 Java工程师成神之路

一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://ifeve.com/jmm-faq/1.1.2. 了解JVM各种参数及调优1.1.3. 学习使用Java工具 jps, jstack, jmap, jconsole, jinfo, jhat,

2015-12-19 11:20:13 4051 2

原创 【JVM系列】Java对象的生命周期与类型的卸载

一旦一个类被装载、连接和初始化,它就随时可以使用了。程序可以访问它的静态字段,调用它的静态方法,或者创建它的实例。类实例化类实例化有四种方式: 1、明确地使用new操作符 2、调用Class或者java.lang.Constructor对象的newInstance()方法 3、调用任何现有对象的clone()方法 4、通过java.io.lang.ObjectInputStream类的get

2015-12-15 21:58:34 1887

原创 Java面试题—try语句中执行return语句

题目:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?public class TryCatchDemo { public static void main(String[] args) { System.out.println(new Demo().myfunction())

2015-12-15 18:42:44 3486

原创 【JVM系列】Java类型装载、连接与初始化

深入Java虚拟机第七章读书笔记Java虚拟机通过装载、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。装载就是把二进制形式的Java类型读入Java虚拟机中;连接就是把这种已经读入到虚拟机的二进制形式的类型数据合并到虚拟机的运行时状态中去。连接分为三步:验证、准备和解析。“验证”确保了Java类型数据格式正确并且适于Java虚拟机使用,“准备”负责为该类型分配它所需的内存

2015-12-15 12:13:21 770

翻译 System.currentTimeMillis()与SystemClock.uptimeMillis()

1、System.currentTimeMillis()获取的是系统的时间,可以使用SystemClock.setCurrentTimeMillis(long millis)进行设置。如果使用System.currentTimeMillis()来获取当前时间进行计时,应该考虑监听ACTION_TIME_TICK, ACTION_TIME_CHANGED 和 ACTION_TIMEZONE_CHANG

2015-12-10 22:28:58 6542

原创 不依赖于Activity的全局对话框的实现

实现不依赖于Activity的全局对话框有三种方式:第一个方法利用系统弹出dialog在alter.show()语句前加入:alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 然后在AndroidManifest.xml中加入权限:android.permission.SYSTEM_ALERT_WINDO

2015-12-10 22:24:50 5680

原创 Android中Dialog源码解析

我们一般都是在使用AlertDialog,但AlertDialog主要也是继承自Dialog。下面我们来分析分析Dialog源码。一、Dialog构造函数public Dialog(Context context) { this(context, 0);}public Dialog(Context context, int theme) { //创建一个Context mC

2015-12-10 22:00:07 894

原创 Java中的数组类Array

java.lang.reflect.Array里面提供了动态创建和访问数组的静态类。下面我们来看看它拥有哪些静态方法可以使用。1、getXXX函数用来获取指定数组、指定索引的所对应的值。public static Object get(Object array, int index) throws IllegalArgumentException, ArrayIndexOutOfBo

2015-12-07 16:04:00 931

原创 Java中的数组工具类Arrays

Arrays就是Java中的数组工具类,它包含了很多静态的方法来对数组进行操作。下面我们来看看它对数组可以进行哪些操作。1、将数组转换成一个Listpublic static <T> List<T> asList(T... array) { return new ArrayList<T>(array);}实质就是使用数组来创建了一个ArrayList。2、数组元素查找系列它提供了一系列的b

2015-12-07 15:21:52 667

翻译 线程同步,对象级别锁,类级别锁

同步一般是指在多线程中,在某一时刻,一个同步块代码只能在一个线程中执行。Java支持多线程执行,所以可能出现两个或者更多的线程访问同一个字段或者对象。同步是一个过程,保持所有并发线程同步执行。同步避免了因共享内存不一致的问题而引起的内存一致性错误。当一个方法声明为同步,并有一个线程持有这个方法对象的监视器,你的线程就会被阻塞,直到这个线程释放这个监视器。同步在Java中使用synchronized

2015-12-02 22:42:17 3631 1

转载 Java中有关Null的9件事

对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java。我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针、操作符重载、多继承实

2015-12-02 21:26:34 498

翻译 Java中yield()和join()在线程中的不同

对线程优先级的理解对线程的优先级的理解对于多线程的学习和yield()工作原理的理解非常有帮助。1、如果没有具体指定优先级,那么所有线程优先级都属于普通优先级。 2、优先级分为1到10这十个等级,其中10是最高优先级,1是最低优先级,5属于普通优先级。 3、具有最高优先级的线程将会优先被执行,但是这并不能保证它在启动的时候就是运行状态。 4、对于在线程池中等待被调度的线程来说,当前执行的线程可

2015-12-02 20:58:37 581

翻译 sleep()与wait()之间的不同

sleep()方法用来阻塞进程一定时间,这个时间可以自己来指定,wait()方法会使线程进入等待状态,并且它不能自动恢复,只有调用了notify()或者notifyAll()之后才能继续执行。最主要的不同是wait()释放了锁或者控制器,但是sleep()在等待的过程中没有释放任何的锁或者控制器。一般情况下,wait()用于线程间的通信,sleep()用于暂停程序的执行。Thread.sleep()

2015-12-02 19:27:39 690

原创 Object中的wait,notify,notifyAll基本使用

Obj.wait(),与Obj.notify()必须要与synchronized(Obj)一起使用,也就是wait,与notify是针对已经获取了Obj锁进行操作,从语法角度来说就是Obj.wait(),Obj.notify必须在synchronized(Obj){…}语句块内。从功能上来说wait就是说线程在获取对象锁后,主动释放对象锁,同时本线程休眠。直到有其它线程调用对象的notify()唤醒

2015-12-02 15:14:04 5650 2

原创 java中synchronized用法基本总结

对于synchronized,基本理解就是可以把任何一个非null对象作为”锁”。1、作用在方法上时,锁住的便是对象实例(this)public class SynchronizedObject { /* * 当synchronized作用在方法上时,锁住的便是对象实例(this) * */ public synchronized void doSomething

2015-12-02 09:35:52 573

原创 Android设计模式之单例模式

提到单例模式,很多人可能觉得很简单,但是单例模式在我们的Android开发中却是经常的使用,所以我们有必要将它进行好好的总结。一、使用单例模式的条件 使用单例模式有一个必要条件:在一个系统要求一个类只有一个实例时才应该使用单例模式。反过来,如果一个类可以有几个实例存在,那么就没有必要使用这个单例类。作为对象的创建模式,单例模式确保某一个类只有一个实例。而且自行实例化并向整个系统系统这个实例。这个类

2015-12-01 11:16:03 664

方正飞腾排版快捷键

好东西, 一定要看,把所有的方正飞腾快捷键囊括在内,好好看,一定要下哦

2012-03-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除