每天分享一个知识点
DylanAndroid
未来已经来临,只是尚未流行
展开
-
Android批量上传文件
原创 2015-08-27 09:34:48 · 1551 阅读 · 0 评论 -
一道在知乎很火的 Java 题——如何同时输出 ab
思路如果正经遵从题目的原代码结构,那就得想办法构造一段代码,既能输出 a,又能返回 false。解法我也想到能否使用 System.out.print 的返回值来做文章,但奈何并不记得它返回什么,首先让我们复习一下 PrintStream 的 print、println 和 printf 方法的区别: 方法 功能 返回值 print 打印一个值或者对象 void print原创 2016-10-10 15:50:52 · 1430 阅读 · 1 评论 -
Java泛型应用之打造Android中ListView和GridView万能适配器【CommonAdapter】--超简洁写法
在android中使用最多的就是ListView,GridView,用到这两个控件那么肯定要用到适配器,那就是定义一个类继承BaseAdapter,让后覆写它里面的getCount(),getView()等方法,下面来写一个demo。原创 2016-10-16 11:25:04 · 5483 阅读 · 2 评论 -
Java泛型应用之打造Android万能ViewHolder-超简洁写法
在ListView的Adapter中的getView()方法中的繁琐写法@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView == null) { c原创 2016-10-15 09:59:18 · 5178 阅读 · 4 评论 -
Java排序之插入排序
/**插入排序*/ public static void insertSort(int[] array) { if (array == null || array.length < 2) { return; } for (int i = 1; i < array.length;原创 2016-10-16 17:49:10 · 843 阅读 · 0 评论 -
Java IO流之规律总结
字符流:Reader: 用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。|—BufferedReader :从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。|—LineNumberReader :跟踪行号的缓冲字符输入流原创 2016-10-18 09:02:24 · 2293 阅读 · 1 评论 -
Java多线程之并发安全经典案例-卖票
线程相关知识1.创建线程的两种方式继承Thread类。实现Runnable接口。(这种方式较为常用)2.实现Runnable接口的好处将线程的任务从线程的子类中分离出来,进行了单独的封装。按照面向对象的思想将任务的封装成对象。避免了java单继承的局限性。多线程并发安全之卖票代码/** * Created by yuandl on 2016-原创 2016-10-14 09:04:36 · 11585 阅读 · 7 评论 -
Java多线程之并发协作生产者消费者设计模式
两个线程一个生产者个一个消费者需求情景两个线程,一个负责生产,一个负责消费,生产者生产一个,消费者消费一个 涉及问题同步问题:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用标记或加锁机制wait() / nofity() 方法是基类Object的两个方法,也就意味着所有Java类都会拥有这两个方法,这样,我们就可以为任何对象实现同步机制。wait()方法:当缓冲区已满/原创 2016-10-12 08:50:07 · 3640 阅读 · 4 评论 -
Java递归算法应用
递归: 就是函数自身调用自身。 什么时候用递归呢? 当一个功能被重复使用,而每一次使用该功能时的参数不确定,都由上次的功能元素结果来确定。 简单说: 功能内部又用到该功能,但是传递的参数值不确定。(每次功能参与运算的未知内容不确定)。 递归的注意事项: 1:一定要定义递归的条件。 2:递归的次数不要过多。容易出现 StackOverflowError 栈内存原创 2016-10-19 08:55:37 · 6063 阅读 · 4 评论 -
Java多线程之并发协作生产者消费者设计模式JDK1.5.0+升级优化版
上一篇[Java多线程之并发协作生产者消费者设计模式]已经讲述了在Java的多线程中,如何处理并发安全的生产者消费者设计模式,不了解的可以先看看上一篇的内容上一篇中的效率和优化问题在上一篇中生产者消费者设计模式中最后为了不产生类似于“死锁”,就是多线程全部wait()导致程序无法向下继续运行的情况,我们采用了notifyAll()这个方法,那么有什么问题呢?效率问题,notifyAll()方法原创 2016-10-13 09:06:49 · 1284 阅读 · 5 评论 -
Android Studio 中Gradle配置debug使用release的签名
当我们在做微信微博sdk分享的时候调试非常麻烦,因为要使用对应的签名版本才能调用sdk成功。当我们使用AndroidStudio的Gradle之后会很简单的解决这个问题。1.我们把签名文件放到工程根目录下(这样做是为了保持路径的统一)2.在Gradle中引入如下代码:/配置keystore签名 signingConfigs { release {原创 2015-09-08 09:14:26 · 2376 阅读 · 0 评论 -
Java线程之线程的五种状态
线程的 5 中状态 1. New 新建状态 当程序使用 new 关键字创建了一个线程后,该线程就处于新建状态,此时线程还未启劢, 当线程对象调用 start()方法时,线程启劢,迚入 Runnable 状态 2. Runnable 可运行(就绪)状态 当线程处于 Runnable 状态时,表示线程准备就绪,等待获取 CPU 3. Running 运行(正在运行)状态原创 2016-10-11 14:17:48 · 4852 阅读 · 3 评论 -
Android应用程序未捕获异常并提示用户发送给开发者
Android应用程序未捕获异常并提示用户发送给开发者UncaughtExceptionSendEmail效果图如下使用Gradle构建时添加一下依赖即可:compile 'com.linglongxin24:UncaughtExceptionSendEmail:1.0.0'继承系统的application/** * Created by yuandl on 2016/4/7 0007. */原创 2016-10-11 09:19:54 · 850 阅读 · 0 评论 -
ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决办法
fragment中添加了button和checkbox这些控件,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。这时候就可以使用descendantFocusability来解决啦,API描述如下:android:descendantFocusability该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关原创 2015-08-19 08:45:16 · 3693 阅读 · 0 评论 -
完美解决程序启动,Activity之间切换,黑屏问题
默认情况下 activity 启动的时候先把屏幕刷成白色或黑色,再绘制界面,绘制界面或多或少有点延迟,这段时间中你看到的就是白屏,显然影响用户体验,怎么消除呢?在 Activity theme 设置style 即可 true true false @android:color/transparent原创 2015-08-20 13:58:59 · 8293 阅读 · 0 评论 -
Android Studio系列-签名打包
第一步 创建签名文件第二步 填写签名参数第三步 选择构建类型第四步 查看生成第apk文件原创 2015-09-07 15:59:19 · 820 阅读 · 0 评论 -
自定义倒计时按钮
自定义倒计时按钮效果 代码:package com.dylan.frame.ui;import android.content.Context;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.view.View;import andro原创 2015-11-05 17:13:47 · 1062 阅读 · 0 评论 -
AndroidTextView的跑马灯效果,解决复杂布局不能获取焦点的问题
//在xml中设置以下内容android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" 自定义View实现import android.content.Context;import android.util.At原创 2015-10-22 16:55:24 · 1315 阅读 · 0 评论 -
Android Studio调试功能使用总结
1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。2.开启调试会话点击红色箭头指向的小虫子,开始进入调试。IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序原创 2015-10-27 14:12:13 · 896 阅读 · 0 评论 -
for循环和变量++的坑
请写出一下代码的输出结果: int count=0; for(int i=0;i<=100;i++){ System.out.println(count+=count++); }原创 2015-11-30 14:36:39 · 961 阅读 · 2 评论 -
Java排序之冒泡排序
冒泡排序原理:比较相邻的元素,将小的放到前面,大的放到后面。冒泡排序丼例:{8 , 2 , 3 , 7 , 1}的排序过程如下所示:ary={8,2,3,7,1}ary={2,8,3,7,1}ary={2,3,8,7,1}ary={2,3,7,8,1}ary={2,3,7,1|8}ary={2,3,7,1|8}ary={2,3,7,1|8}ary={2,3,1|7,8}ary={2原创 2016-10-10 14:36:15 · 528 阅读 · 0 评论 -
Java排序之集合排序
集合排序要么让集合的对象具有比较性也就是让集合中的对象实现Comparable接口自定义比较器实现Comparator举例:按人的年龄排序代码如下 - UserBean对象/** * Created by yuandl on 2016-10-10. */public class UserBean implements Comparable<UserBean> { privat原创 2016-10-10 15:29:56 · 626 阅读 · 0 评论 -
Java数组之获取最值
/** * 获取数组最值 */ private static int getMax(int arr[]) { int max = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] > max) { max = arr[i原创 2016-10-10 15:39:38 · 2699 阅读 · 0 评论 -
Java Socket通信之客户端服务端交互聊天案例
服务端接收客户端发送过来的数据,并打印在控制台上。 Tcp传输,客户端建立的过程。 1,创建服务端socket服务。通过ServerSocket对象。 2,服务端必须对外提供一个端口,否则客户端无法连接。 3,获取连接过来的客户端对象。 4,通过客户端对象获取socket流读取客户端发来的数据并打印在控制台上。服务端代码import java.io.原创 2016-10-20 08:49:21 · 3620 阅读 · 4 评论