自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 关于i++和++i的思考总结

结论先行 变量 变量计算 举例 性能对比 i i = 1 i++ i++ = i .

2022-03-16 10:51:03 411

原创 LinkedHashMap如何获取第一个键值

每天坚持输出,哪怕很小的知识点 @Test public void test_LinkedHashMap_findFirstKey(){ LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap<>(); linkedHashMap.put("1","1"); linkedHashMap.put("2","2”); // 关键代码

2022-03-13 21:49:15 3556

原创 kotlin var val关键字比较

关键字 说明 举例 var 声明可变变量 var a = 1(var a:Int = 1) a = 2 // pass val 声明不可变变量(l和直,所以不可变) val a = 1 a = 2 // error,a用val声明,不可修改,但是又不同于常量 ...

2022-03-01 23:23:08 1761

原创 linux zip(压缩) unzip(解压)文件夹

一个test文件夹,其中有两个文件,a.txt,b.txt 要求 操作步骤 压缩 将test文件夹压缩为test.zip 1 进入到test目录 2 执行 zip -q -r test.zip * 3 在test路径下输出test.zip 解压 解压test.zip输出到source文件夹 1 进入source(没有创建),将test.zip文件复制到其中 2 执行 unzip test.zip...

2022-02-25 23:16:02 1440

原创 linux环境下输出一个文件夹下的所有文件

两种方式 命令 输出结果 ls -R find -name "*.*"

2022-02-24 23:20:39 2478 1

原创 专业名词LOC&KLOC

loc:line of codekloc:千行代码,例如9.5kloc表示大约9500行代码

2022-02-23 22:23:47 2353

原创 beyond compare实现只比较特定关键字

1 打开beyong compare2 打开一个文件3 点击头部工具栏的Rules4 弹出对话框,选中对话框中的importance5 点击下面方框右侧的Edit Grammar6 弹出对话框,点击上面方框下的加号7 弹出对话框,根据提示输入规则名称和规则,比如输入名称hide,规则 .*@hide.*8 所有对话框点击ok9 回到第一个弹出的对话框,下面方框出现我们新增的hide规则,只选中这个规则,即可实现只比较存在@hide关键字的文件...

2022-02-22 23:52:22 706

原创 Android CTS官方文档信息整理

官方文档分类路径: AOSP-设计-测试 Android 12 CTS变更 https://source.android.com/compatibility/cts/cts-release-notes?hl=zh-cn

2022-02-21 22:29:42 1057

原创 使用mac自带的g++编译c++ hello world程序

sublime,终端 步骤 1 使用sublime编写以上代码,保存文件为hello.cpp到xxx目录 2 打开终端到xxx目录 3.1 在终端输入g++ -o hello hello.cpp 3.2 换行 结果:3.1 终端无任何提示, 3.2 xxx目录下会生成一个hello的可执行文件 ...

2022-02-20 10:38:55 1050

原创 golang中:=是什么意思?

说明 声明并赋值,系统自动推断类型,不需要var关键字 四种等价形式 golang java d:=100 没有这种形式 var d // 声明 d=100 // 赋值 int d; d = 100 var d=100 没有这种形式 ...

2022-02-19 19:18:13 517

原创 golang函数定义

golang java 定义 func 函数名([参数列表]) [返回值] 函数访问修饰符 返回值 函数名([参数列表]) 举例 /* 函数返回两个数的最大值 */ func max(num1, num2 int) int { } /* 函数返回两个数的最大值 */ public int max(int num1, int num2){ } ...

2022-02-18 23:23:34 348

原创 对golang语言var的理解

定义 var是一个关键字,用来声明变量 形式 var name type (var 变量名 变量类型) 举例 声明指针类型 var a,b *int

2022-02-17 23:12:52 1464

原创 margin和padding在开发者模式下的区别

设置margin有粉红色背景设置padding无粉红色背景

2022-01-09 23:03:19 1537

原创 配置NDK环境

1 打开文件 open -e .bash_profile 2 输入export NDK_ROOT=/Users/apple/Documents/androidsdk/sdk/ndk-bundleexport PATH=$PATH:$NDK_ROOT3 保存 4 更新 source .bash_profile

2017-11-07 11:40:12 525

转载 android发彩信

/** * 发彩信 */private void sendSMS(String url){ Intent intent = new Intent(Intent.ACTION_SEND); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //uri为你的附件的uri,ex:file://sdcard//tmpPhoto.jp

2017-10-07 14:52:00 813

转载 Android获取Manifest中<meta-data>元素的值

android 开发中: 在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>、<application> 、<service>``<receiver>元素中,不同的父元素,在应用时读取的方法也不同。1 :在Activity应用元素。 xml代码段:<activity...> <meta-data android:name=

2017-09-06 09:33:45 361

原创 上下拉刷新列表总结

上下拉刷新

2017-09-05 11:04:33 364

原创 自定义跟随手指移动view

public class MoveView extends AppCompatButton { int mLastX; int mLastY; public MoveView(Context context) { super(context); } public MoveView(Context context, @Nullable Attri

2017-08-31 15:20:18 339

转载 android studio生成jar

参考博客 自己测试小demo 以后有时间再深入研究

2017-08-30 10:43:46 206

原创 使用反射生成jdk动态代理

1 代理类实现了接口?执行代理类的每个方法都会被替换执行InvocationHandler对象的invoke方法//obj是你自己实例化的对象在invoke中调用 Object object = method.invoke(obj,args);其实还是你自己实现了接口2 每个代理对象关联一个InvocationHandler//接口public interface Dog { vo

2017-08-29 18:57:55 315

原创 泛型与Class类

1 使用Class<T>泛型可以避免强制类型转换2 String.class的类型实际上是Class<String>3 如果Class对应的类暂时未知,就用Class<?>//不用泛型的demopublic class ObjectFactory { public static Object getInstance(String name){ try {

2017-08-29 16:46:46 1023 1

原创 使用反射来获取泛型信息

//涉及api//获取类对应的Class对象1 Class cls = Object.class;//获取类的成员变量2 Field flild = cls.getDeclaredField("");//获取成员变量的数据类型(普通)3 Class<?> type = field.getType();////获取成员变量的数据类型(泛型)4 Type gType = field.ge

2017-08-29 15:58:14 2142

原创 设计模式之禅-代理模式2

定义:自己写代理类的方式就是静态代理 承接上篇文章 类图中多了InvicationHandler,GamePlayerIH 作用是产生一个对象的代理对象/** * 动态代理类 * 原理不清楚 */public class DynamicProxy implements InvocationHandler{ //被代理者 private Class cls; //

2017-08-26 15:02:42 189

原创 代理模式小例子1

代理模式定义:为其他对象提供一种代理,以控制对这个对象的访问 代理模式ex: 以上为该文章例子的简单代理模式的类图 接口:IGamePlayer 实现类:GamePlayer 实现类的代理类:GamePlayerProxy 实现类和代理类实现相同的接口/** * 打游戏的接口 */public interface IGamePlayer { //登录 public

2017-08-26 11:17:39 373

原创 CoordinatorLayout

控件 子view必须设置 CoordinatorLayout layout_behavior layout_anchor layout_anchorGravity 控件 自view必须设置 必须 CollapsingToolBarLayout layout_collapseMode 它需要是 AppBarLayout 的直接子 View 控件

2017-08-22 18:05:57 71

原创 button跟随手指移动

public class TextActivity3 extends Activity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layou

2017-08-22 11:30:36 444

原创 在代码中设置margin

public class MarginActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCont

2017-08-21 09:54:51 2343

原创 android 屏幕属性

public class CoordinateUtils { /** * 状态栏+title+view * @param context * @return */ public static DisplayMetrics getScreenWH(Activity context){ DisplayMetrics metrics

2017-08-21 09:53:47 250

原创 Dialog

从底部弹出对话框public class TestDialog extends Dialog{ private Activity context; public TestDialog(Activity context) { super(context); this.context = context; } public TestDialo

2017-08-17 20:16:29 92

原创 ShareSdk学习总结

oneKeyShare方便但是ui太过于死板,不利于扩展,所以还是自己来调用api 以朋友圈为例:public void Momments() { //1 获取设置参数实例 Platform.ShareParams sp = new Platform.ShareParams(); //2 设置参数 sp.setTitle(news.title

2017-08-17 17:29:26 170

转载 单例模式造成的内存泄露

参考文章

2017-07-07 17:34:10 468

原创 Retrofit+mvp简单实例

v:就一个简单的接口,给activity提供数据,activity实现这个接口就可以 所以数据回调都可以用这一个接口public interface ViewData<T> { void showProgress(); void hideProgress(); void loadData(T data);}m : 数据真正来源,提供数据给p p需要传递接口过来拿数据,在

2017-07-07 10:02:14 220

原创 Retrofit简单封装

参考博客 简单实用步骤 1 ApiService,所有需要的接口public interface ApiService { @GET("top250") Call<MovieResponse> getMovices(@Query("start") int start, @Query("count") int count);}2 ApiManager,用来简单的封装Retrofi

2017-07-07 08:41:37 72

原创 对android回调的理解(一)

接口I就是a类去b类中拿想要的东西,接口I就是a类的实例代表 a 实现这个接口I,b接收a传递过来的接口实例,在获取数据的地方调用接口的方法即可public class Person{ //一个函数,我把他想象成是接口的实现 public void setName(String name){ Log.d(&amp;quot;log&amp;quot;,name); }}//调用函数,将“老王

2017-06-27 08:54:21 1207 2

原创 简单的android网络请求

请求数据来源: https://api.douban.com/v2/movie/top250 params: start,count OK+AsyncTask//对ok的简单设置public class MyOkhttp { public static OkHttpClient client = new OkHttpClient(); public static Str

2017-05-31 08:56:54 1165

转载 GsonUtils

public class GsonUtil { private static Gson gson = null; static { if (gson == null) { gson = new Gson(); } } private GsonUtil() { } /** * 转成json

2017-05-28 20:32:35 595

原创 android studio的一些问题

1 Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor version 52.0问题:preview显示不出来 解决链接2 This app has been built with an incorrect configuration. Please configur

2017-05-28 20:07:12 215

原创 项目中ListView使用分析

1 我不喜欢用implements 的方式来写代码2 各种方式的区别总结3 看LoadMoreListView源码public class HomeSubjectListUI extends BaseFragmentActivity implements AdapterView.OnItemClickListener, NetRequestUtils.RequestListener, Load

2017-05-27 10:07:27 180

原创 Java中普通代码块,构造代码块,静态代码块区别及代码示例

java代码块1 普通代码块普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定“先出现先执行”2 构造代码块直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。3 静态代码块在java中使用static关键字声明的代码

2017-05-23 19:04:04 116

原创 Retrolambda使用介绍

gralde配置在 build.gradle(Project)中加上下列内容buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.5' } } // Required because retro

2017-04-19 14:53:27 871

空空如也

空空如也

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

TA关注的人

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