- 博客(15)
- 收藏
- 关注
原创 Git多用户,不同项目配置不同Git账号
最近碰到一个比较麻烦的Git的应用场景:就是一台电脑上,可能有个git工程,每个工程的地址和账号密码又是不一样的,刚开始的就是要用那个工程了,就修改下全局的user.name,user.email,但是每次都是很麻烦,甚至会push错地方。那么有没有办法可以在一台电脑上配置多个Git用户,不同的Push地址呢?经过查询和实验,发现是可以实现的。我就以Github来举例说明(服务器的地址都是gi
2018-01-10 23:08:19
28122
1
原创 Android统一管理配置库的版本
在我们开发应用的时候,都会用到一些第三方库,设置应用的targetSdkVersion、compileSdkVersion,buildToolsVersion等,一般情况下,我们都是直接在应用的gradle文件中引用库,如下面: compile project(':FastBleLib') compile 'com.android.support:appcompat-v7:25.3.1
2017-07-09 21:59:42
1325
原创 RxJava线程切换代替Thread和Handler
在我们的日常开发中,我们可能会经常涉及到线程的切换,比如:需要在子线程中加载数据库中的数据,一般情况下,我们会这样做: new Thread(new Runnable() { @Override public void run() { //do something } }).sta
2017-07-09 21:57:08
4292
原创 Servlet之过滤器
过滤器的作用过滤器能够动态的访问和拦截请求头和响应头,我们可以进行检查和修改。 - 过滤器本身并不生成请求和响应对象,只是提供过滤功能。 - 过滤器能够在Servlet被调用之前检查Request对象,并修Request Header和Request内容。 - 在Servlet被调用之后检查Response对象,修改Response Header和Response的内容。 - Servlet
2017-04-01 13:56:12
414
原创 Android 内存泄露
什么是内存泄露通俗的讲:不在使用的对象,其内存不能回收,导致能使用的内存越来越少,这就是内存泄露内存泄露的原因在Android开发中,最主要的原因就是生命周期长的对象,持有生命周期短对象的强引用内存泄露的例子1. Handler内存泄漏Handler 的使用造成的内存泄漏问题应该说是最为常见了,很多时候我们为了避免 ANR 而不在主线程进行耗时操作,在处理网络任务或者封装一些请求回调等api都借助H
2017-03-30 14:19:20
297
原创 Android/Java内存管理
Java内存结构Java虚拟机会将内存分为几个不同的管理区,这些区域各自有各自的用途,根据不同的特点,承担不同的任务以及在垃圾回收时运用不同的 算法 。总体分为下面几个部分:程序计数器(Program Counter Register) 、 * JVM虚拟机栈(JVM Stacks ) * 、 * 本地方法栈(Native Method Stacks) * 、 * 堆(Heap) * 、 * 方法
2017-03-30 14:16:54
435
原创 Java中线程通信
1. 多个线程在操作同一份资源时,其操作如果一致的,则不需要使用线程之间的通信,如多个线程卖票。如果操作不一致,则可能需要线程通信。2. java中线程之间的通信一般利用wait和notify方法来实现的2.1 wait(),wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法。当前的线程必须拥有当前对象的monitor,也即lo
2015-05-03 20:04:52
455
原创 死锁和线程之间的通信
1. 死锁1.1 死锁的产生条件1.1.1 互斥条件,即一个资源被一个线程访问时,另一个线程不能去访问。1.1.2 不可抢占,即不可剥夺,资源请求者不能从占有者手中夺取资源,只能有持有者自己释放1.1.3 请求和保持,即持有者也是请求者1.1.4 循环等待,请求和持有资源形成一个环形。1.2 Java中死锁一般发生在同步嵌套中,由于相互请求彼此持有的锁而发生死锁。如:
2015-05-03 19:32:18
623
原创 Java中单实例的设计
1. 单例模式,即是在整个程序运行过程当中一直只存在一个实例。有多种设计的方法。2. 设计的方法,比较出名的有懒汉式,饿汉式2.1 饿汉式,这种方法创建的单例是线程安全的,因为getInstance方法中只有一句话。但是这种方式的缺点是:不管程序是否使用Single对象,都会创建该对象。class Single{ private static Single single=new S
2015-05-03 17:16:26
485
原创 Java中线程的同步
1. 线程同步的条件1.1 有多个线程要访问资源1.2 访问的资源是统一份资源2. 线程同步的方法2.1 采用同步代码块的方式来实现同步,其中代码的监视器(锁)可以是任何一个对象,但是要注意的是多个线程应该共享的是同一个监视器,否则无法实现同步。class Ticket implements Runnable{ private static int ticket=100;
2015-05-03 17:02:53
505
原创 Java多线程
1.进程和线程,程序的概念1.1程序:是一组指令的有序集合,没有任何运行时的意义,即是静态的。可以存储。1.2进程:他是动态的,是程序在某个数据集上的运行,是一个动态的实体,有自己的生命周期。进程是操作系统中资源分配的基本单位,有着自己的独立的内存和资源,cpu在切换进程时,有独立的地址空间,当某个进程破坏时,不影响其他的进程。耗费的时间较多,因此引入了线程。1.3线程:即是进程某
2015-05-03 16:30:52
409
原创 Java反射中Method的用法
当获得某个类的对应的Class对象后,就可以通过该Class对象的getMethod方法和getMethod方法获得Method对象和数组,每个Method对象对应一个方法,获得Method对象后,调用invoke方法来调用这个方法,实例如下:class Student extends Person{ private String name; private Student(){};
2015-05-01 18:29:49
2791
原创 Java中关于数组的反射
Java中关于数组的反射:1.准备知识:首先要知道数组是一种类型,根据定义当两个数组具有相同的类型和相同的维度时则这两个数组是同一种类型。int[] a=new int[3];int[] a4=new int[5];String[] a3=new String[]{"hello","jdfsa"};System.out.println(a.getClass()==a4.getClas
2015-05-01 11:14:55
457
原创 Java内存管理
Java中jvm虚拟机中主要把内存划分成几个不同的数据区域,今天主要讨论三个区域,堆,栈,和方法区。堆:Java堆是Java虚拟机所管理内存最大的一块,在虚拟机启动时所创建。其主要的作用就是存放对象实例,即通过new出来的对象都存放在这个地方。同时数组也分配在堆上。堆是Java垃圾收集器管理的主要区域,有的称为GC堆。栈:栈一般是私有的,不同的对象有不同的栈内存地址。其主要的作用是
2015-04-29 23:49:47
432
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人