自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浅枫

努力努力再努力~~~

  • 博客(27)
  • 收藏
  • 关注

原创 Android面试准备之Android基础

一、Handler机制创建一个Handler//提示已过时Handler handler = new Handler();Handler handler = new Handler(Looper.myLooper());隐式指定Looper的Handler初始化方法已被Android 11报过时,根据注释,是由于不指定Looper在一些场景下会导致任务丢失或程序崩溃,比如没有Looper的线程。public static @Nullable Looper myLooper() { re

2022-03-13 20:27:29 3617 1

原创 Android面试准备之Java基础

一、Java基础知识1 什么是面向对象,谈谈你对面向对象的理解对比面向过程,是两种不同的处理问题的角度,面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者、及各自需要做什么。三大特性:封装、继承、多态封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,内部细节对外部调用透明,外部调用无需修改或者关心内部实现。例:JavaBean继承:继承基类的方法,并做出自己的改变和/或扩展。子类共性的方法或者属性直接使用父类的,而不需要自己再定义,只需扩展自己个性化的。多态

2022-01-25 23:05:26 2094

原创 利用反射更改属性值

1 利用反射更改private字段值public class ReflectTest { private static String sTestOne = "Origin"; public static String getTestOne() { return sTestOne; }}try { Field field = ReflectTest.class.getDeclaredField("sTestOne"); fie

2021-05-21 16:31:34 2482

原创 View.post()在绘制流程之后执行原理详解

/** * {@hide} * * Not available for general use. If you need help, hang up and then dial one of the following *///这个是Android 30的代码,这里标记在Android 28以上这个属性不允许外部应用访问了,而是包装了一系列接口来访问AttachInfo中的内容,不过对我们的分析没什么影响@UnsupportedAppUsage(maxTargetSdk = Build.

2021-05-19 19:53:13 217

原创 JVM学习笔记

1 类加载、链接及初始化1.1 类加载要完成的功能通过类的全限定名来获取该类的二进制字节流把二进制字节流转化为方法区的运行时数据结构在堆上创建一个java.lang.Class对象,用来封装类在方法区内的数据结构,并向外提供了访问方法区内数据结构的接口1.2 类加载器启动类加载器BootstrapClassLoader平台类加载器PlatformClassLoader应用程序类加载器AppClassLoaderJava程序不能直接引用启动类的加载器,直接设置classLoader

2021-02-28 19:02:53 100

原创 Android面试笔记

Android面试JAVA基础杂记String相关String longString = "aa......a"; 存储在栈内存中,编译时知道大小,编译成字节码时字节码中数组最多存储65535个字节(如果为拉丁字符,小于但不包含,如果为非拉丁字符,包含),最终存在虚拟机方法区的常量池中。byte[] bytes = loadFromFile(new File("text.txt"));String superLongString = new String(bytes);存储在堆内存中,

2021-02-27 15:42:21 140

原创 View绘制学习(一)

View绘制学习之onMeasure()1 setContentView源码学习首先,onCreate调用setContentView(int resId),调用AppCompatActivity.java中代码:@Overridepublic void setContentView(@LayoutRes int layoutResID) { getDelegate().setCo...

2020-01-06 20:08:04 132

原创 MVP架构学习笔记

MVP与MVC1 MVCMVC各部分通信模型如下所示:MVC全名为Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。Model:模型层,负责处理数据的加载或存储。数据更新后,通知View去更新界面显示。View:视图层,负责界面数据的展示,与用户进行交互。接受用户的请求,然后将请求传递给Controller。C...

2019-11-15 15:46:55 174

原创 Android学习笔记之RecyclerView代码示例

设置依赖build.gradleimplementation 'androidx.recyclerview:recyclerview:1.0.0'user_select_list.xml<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res...

2019-10-30 14:02:34 342

原创 AS ButterKnife插件引入

ButterKnife作用减少手写findviewbyid的操作,提高开发效率,可使用Android Studio一键生成代码引入步骤添加依赖在build.gradle(app)中:dependencies { //butterknife implementation 'com.jakewharton:butterknife:10.2.0' annota...

2019-10-16 17:26:05 197

原创 Android apk简单文件反编译

参考链接:https://zhuanlan.zhihu.com/p/51260384首先准备好三个工具apktool:反编译apk dex2jar:将dex文件反编译为jar jd-gui:查看jar源码下载链接https://github.com/13046434521/-/blob/master/%E5%8F%8D%E7%BC%96%E8%AF%91%E5%B7%A5%E5%85...

2019-10-12 15:05:24 224

原创 JAVA多线程学习笔记

多线程实现Java中的Thread类就是专门用来创建线程和操作线程的类。创建线程的两种方法1.继承 Thread 类并重写它的run()方法,然后用这个子类来创建对象并调用start()方法。2.当一个线程已经继承了另一个类时,可以通过实现Runnable接口来构造。ThreadLocalThreadLocal提供了线程局部变量,每个线程可以通过set()、get()操作这...

2019-09-23 15:45:45 113

原创 Git初学操作笔记

ssh公钥配置首先配置环境变量。对于WIN系统:右键计算机>>高级系统设置>>环境变量PATH最后加一个分号,复制粘贴~/Git/bin文件夹路径然后开始配置公钥ssh-keygen -t rsa -C "your_email"此时.ssh文件夹下出现两个文件id_rsa与id_rsa.pub,记事本打开pub文件全部复制,添加到gerrit公钥处...

2019-09-17 10:50:40 116

原创 Android面试知识点汇总(一)

Android基础一、Activity相关1.Activity生命周期Activity是与用户交互的接口 Android系统通过Activity栈的形式来管理Activity Active/Paused/Stopped/Killed正常情况下回调方法:onStart()回调表示可见但无法与用户交互。 onResume()回调表示处于前台,可见且可与用户交互。 onPaus...

2019-02-18 21:52:41 449

原创 Android学习笔记之数据存储

数据库基础常用语句创建表格CREATE TABLE pets (_id, name, breed, gender, weight);插入数据INSERT INTO pets (_id, name, breed, gender, weight) VALUES (1, "Tommy", "Pomeranian", 1, 4);常用关键字PRIMARY KEY  将相关列标...

2019-02-18 20:11:15 111

原创 常见部分数学问题

最大公约数与最小公倍数欧几里得算法int gcd(int a, int b){ if(b == 0) return a; else return gcd(b, a % b);}更简洁的写法int gcd(int a, int b){ return !b ? a : gcd(b, a % b);}由最大公约数可以很快得到最小公倍数即ab/d,而ab...

2019-02-13 17:46:07 321

原创 产生随机数

C语言产生随机数的函数#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;time.h&gt;int main(){ rand((unsigned)time(NULL)); for(int i = 0;i &lt; 10;i++){ printf("%d ",rand()); ...

2019-02-11 18:31:37 158

原创 Android学习笔记之Application全局

Application是维护应用全局状态的基类,Android系统会在启动应用进程时创建一个Application对象。自定义Application类创建Application子类 在AndroidMainfest.xml中为application标签添加name属性Application对象的生命周期Application对象诞生于其它任何组件对象之前,并且一直存活,直到应用进程...

2019-02-11 15:20:14 179

原创 全排列问题

#include &lt;cstdio&gt;const int maxn = 11;//P为当前排列,hashTable记录整数x是否已经在P中int n,P[maxn],hashTable[maxn] = {false};//当前处理排列的第index号位void generateP(int index){ if(index == n + 1){ //递归边界,已经...

2019-02-05 19:48:41 182

原创 Android学习笔记之Broadcast机制

静态注册继承BroadcastReceiver父类,重写onReceive方法。 在AndroidManifest.xml中静态注册public class BatteryLowReceiver extends BroadcastReceiver{ private String TAG = "BatteryLowReceiver"; @Override publi...

2019-02-03 16:42:25 161

原创 小白Android实现从教务系统获取信息(二)获取成绩信息

上次实现了登录后拿到教务网站首页的源数据显示在UI上,这次实现了不同Activity间跳转和成绩信息的查询。UI还没有做,上简陋的效果图:当用户登录之后,整个应用程序使用的是同一个HttpClient向目标页请求信息。这里稍微纠结了一下,一开始使用的是Bundle传值,使用Serializable接口,但是HttpClient不可用,修改源文件又太麻烦,再定义一个类也没有成功。折腾了一...

2018-04-25 13:57:36 1412

原创 小白Android实现从学校教务系统获取信息(一)抓包与模拟登录

上课的时候经常忘记教室,打开教务系统看又太麻烦,所以最近想做一个app能够自动推送上课信息、上课教室,查成绩,如果可以的话再做一个一键评教。其他功能还在想。以前没接触过不用api做的,模拟登录整整折腾了一天半,慢慢做吧,毕竟我菜。先上两张效果图,我登录了之后点击了课表信息源数据显示在UI上。首先用Charles抓包,抓包之前要记得清除历史数据,否则cookie保存到本地了获取不到。以下...

2018-04-22 14:37:29 3726

原创 《疯狂JAVA讲义》第9章 异常处理 学习笔记

1.异常处理机制Java提供了丰富的异常类,把所有的非正常情况分为两种:异常(Exception)和错误(Error),它们都继承Throwable父类。Error错误,一般是指与虚拟机有关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。进行异常捕获时不仅因该把Exception类对应的catch块放在最后,而且所有父类异常的catch块都应该排在...

2018-04-19 15:52:14 181

原创 《疯狂JAVA讲义》第8章 泛型 学习笔记

1.深入泛型当使用List类型时,如果为E形参传入String类型实参,则产生了一个新的类型:List&lt;String&gt;类型。可以为任何类、接口增加泛型声明。从泛型类派生子类使用接口、父类时不能再包含类型形参。例如下面的代码就时错误的:public class A extends Apple&lt;T&gt;{}可以改为:public class A extends Apple&lt;S...

2018-04-18 20:11:29 235

原创 《疯狂JAVA讲义》第7章 Java集合 学习笔记

集合和数组的区别:数组元素既可以是基本类型的值,也可以说对象。而集合里只能保存对象。Java集合类主要有两个接口派生而出:Collection和Map1.Collection和Iterator接口Collection接口是List、Set、Queue接口的父接口,具有add、remove、clear等方法来操作集合元素。Iterator接口主要用于遍历Collection集合中的元素,Iterat...

2018-04-17 21:51:21 321

原创 《疯狂JAVA讲义》第6章 Java基础类库学习笔记

1.Scanner类Scanner类主要提供了两个方法:hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符串。如果只是判断是否包含下一个字符串,则直接使用hasNext()nextXxx():获取下一个输入项默认情况下,Scanner使用空白(包括空格、Tab空白、回车)作为多个输入项之间的分隔符。下面代码将只把回车作为分隔符:Scanner ...

2018-04-16 18:56:21 417

原创 《疯狂JAVA讲义》第5章面向对象(下)学习笔记

1.关于toString()方法的讨论对于Persom类的对象p:System.out.println(p);System.out.println(p.toString());两行代码的效果完全一样,输出均是Person对象的toString()方法的返回值。toString()方法属于Object类,返回该对象实现类的“类名+@+hashCode”的值,因此如果要实现“自我描述”功能就需要重写...

2018-04-14 18:32:02 285

空空如也

空空如也

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

TA关注的人

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