Java基础
林雷2.x
写博客是一种兴趣,起到扎实基础,分享自己的心得的作用,博客也是别人认识自己的一种方式,共同学习,共同成长。如果我写的博文中出现什么错误的或者不全的地方,希望各位大佬们帮忙纠正,可以通过留言、QQ(374353845)、邮箱(374353845@qq.com)等方式进行沟通,感激不尽。
展开
-
命令模式1
觉得命令模式最大好处就是做到解耦原创 2022-06-15 19:45:48 · 104 阅读 · 0 评论 -
注解的使用场景和GSON中注解映射实体的实现流程(自己想象的,可能机制不同)
这是一个简单的实体类这是Gosn 封装的注解//当从后端获取一个 josn 时 如:{index : 10, age=20}// 可能它的 index 字段对应的是实体变量中的 themeID 变量//在获取index 的时候要赋值给 themeID//通过gosn , gosn 是一个自动将json转换成实体类的工具//使用SerializedName 映射 index给 themeID 看图1// 自己想象GOSN的实现原理// 基本的步骤, 实体中有变量名称等于后端的 ind原创 2022-04-08 12:19:11 · 1054 阅读 · 0 评论 -
注解和反射常使用的方法试验
isAnnotationPresent如果使用了 返回true , 否则 flaseField 类中的属性,变量等这些属性在 SdkIdUtil 类中输出结果原创 2022-03-24 11:52:18 · 298 阅读 · 0 评论 -
定时线程 ScheduledExecutorService
ScheduledExecutorService scheduledExecutorService= Executors.newScheduledThreadPool(1);scheduledExecutorService.schedule(new MyRunnable(), 10, TimeUnit.SECONDS);参数的作用: runnable : 顾名思义 long i : 指定时间执行一次 timeUnit : 时间的单位timeUnit的单位有这些// 上..原创 2022-03-08 16:01:31 · 3350 阅读 · 0 评论 -
通过反射跳转activity
// com.yyl.mydemo.ui.activity.ResultTestActivity 是activity的绝对路径 Class<?> resultTestActivity = Class.forName("com.yyl.mydemo.ui.activity.ResultTestActivity"); ActivityUtil.startActivity(Ma...原创 2022-03-08 11:07:03 · 290 阅读 · 0 评论 -
守护线程h
setDaemon(boolean on); true 为守护线程 当主线程执行完,只有守护线程,Java虚拟机将退出,不会等待守护线程执行完注意:主线程死亡jvm退出是有一定时间,再这个期间守护线程可能还会分到一些时间片执行一段操作...原创 2022-02-27 15:16:28 · 72 阅读 · 0 评论 -
冒泡排序讲解
冒泡排序的原理 public static void maopao() { int[] shuzus = new int[]{10, 25, 50, 24, 36, 40}; //两两比较 shuzus.length 次 每次比较 每次让最大的排在后面 for (int x= 0 ; x<shuzus.length ;x++){ // 遍历数组 // 从最小排到最大 两两比较原创 2022-02-26 22:33:11 · 67 阅读 · 0 评论 -
java跨平台原理
java跨平台的原理:主要是通过安装不同平台的jvm来实现跨平台 ,通俗的讲就是安装了jvm 就可以跑java程序window 平台就安装window版本的jvm同理 mac 平台安装Mac平台的jvmLinux 安装Linux jvm再举个例子 , 你是中国人, 你要和俄罗斯人沟通 你得请个俄语翻译,把中文翻译成俄文 , 俄罗斯人就能听懂了同理你要和美国人沟通,请个英文翻译, 将中文翻译成英文,美国人就能听懂java跨平台就是这样,在哪个平台就用该平台的jvm ,就能在该平台运原创 2022-02-25 11:43:37 · 279 阅读 · 0 评论 -
object实现单例(通俗易懂)
不废话,直接上图这是一个object 修饰的类,里面有一个方法打印结果地址打印是一样的,这种单例真的是神仙操作原创 2022-02-20 18:52:33 · 1287 阅读 · 0 评论 -
委托模式呵
简单 委托模式 Main调用Student的sayHello方法时 Student 拥有People的实例 将SayHello委托给People的SayHello的方法去执行。原创 2022-02-19 11:39:57 · 49 阅读 · 0 评论 -
泛型 T 和 通配符 ?
最近被两者搞得有点晕,特意复习一下基础泛型的应用: 可以理解为将类型指定为抽象类型(通俗点就是模糊指定类型,或者不指定类型),将来使用时再去指定想设置的类型,这个经常使用,就不多阐述,来个例子例子1 : t1 使用该实例时 t2 通配符 ? 设置指定类型的范围,超过范围就会报错 t3 例子2 t4 乏型和通配符的区别 乏型: 1.抽象指定类型...原创 2018-08-22 13:08:04 · 8855 阅读 · 8 评论 -
http请求头的相关知识
从网络上随便捕抓的一个请求头,这个请求头并不包含所有的请求头属性,这篇文章的主要目的是让大家懂得怎么去设置请求头 比如还有Content-Type:内容类型, 可以设置为提交表单类型 contentType=”text/html;charset=UTF-8” 以HTML输出文本 , 编码为 utf-8 Accept-Language : 设...原创 2018-07-03 17:22:39 · 240 阅读 · 0 评论 -
java 多态
多态原理: 同一个行为,在不同情况下,会出现不同的状态或者形态 现实中: 案例1.“打印机”点击“打印按钮”,可能出现两种颜色的纸张,这就是属于多态 t1 案例2: 宠物店售卖各种动物 t2 t3 t4 1.针对实现编程 t5 2.针对接口/超类型编程(多态) t6 实际上针对接口和超类型编程就是多态。你的领导、你的老师、你的同事,是不是经常让...原创 2018-05-08 18:04:42 · 210 阅读 · 0 评论 -
反射的使用
基本原理: 反射可操作该类的所有东西,包括操作属性,方法,构造方法等等1.获取Class对象(可能还有其它方法): 1.1:getClass() 图1 图2 1.2:Class.forName() 图3 图4 注:获取的是类,不是实例2.关于getDeclaredXXX() 和getXXX() 图5 2.1:这里只讲解使用,不讲原理 getDec...原创 2018-05-05 17:10:31 · 201 阅读 · 0 评论 -
单例模式
单例模式的目的/作用是什么:单例的基本原理,就是保持着实例(对象)仅存在一个,不管你获取多少次实例,返回的对象地址都一样。 执行获取实例 打印的内容 这样做的目的是避免多个实例造成的错误;比如一个工具类,用该工具类创建了实例1操作A方法,你得用该实例1去操作B方法操作这样才是符合逻辑。 这个时候假如你再次获取工具类生成实例2,用实例2操作了B方法,就出现了bug,所以单例应...原创 2018-04-20 10:37:53 · 142 阅读 · 0 评论 -
List集合创建数据耗时问题
经测试: 1.List 创建数据: List 一次性创建300条数据,耗时基本为0毫秒,一次性创建5000条数据耗时2-5毫秒;2.List添加数据: 在5000条数据上,再添加5000条数据,耗时为 3-7毫秒 总结:所以不用担心List创建数据过于耗时的问题...原创 2018-04-24 10:27:03 · 518 阅读 · 0 评论 -
创建内部类的实例方法
Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,方法:Outer.Inner in = new Outer().new Inner();内部类可以引用全局变量;原创 2015-10-31 14:54:31 · 2458 阅读 · 0 评论 -
类方法、静态方法、实例方法
静态方法就是类方法,用类名.静态方法,可以直接调用。实例也可以调用静态方法,但是前辈说不建议这样使用,至于为什么,我也不清楚。类名不可以调用实例方法。实例方法就是要new一个实例出来才可以调用的方法。原创 2015-10-31 14:58:34 · 307 阅读 · 0 评论 -
自定义异常的用法,抛出异常后,代码仍然继续执行。
//自定义异常public class NoThisSoundException extends Exception{private String i;public NoThisSoundException() {super();}public NoThisSoundException(String i) {super(i);}}//抛出原创 2015-10-31 15:01:04 · 7008 阅读 · 3 评论 -
Java 自定义注解
Java 自定义注解详解 http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html原创 2016-02-05 18:48:29 · 228 阅读 · 0 评论 -
选项菜单
1//子菜单列表menu.xml <item android:id="@+id/add" android:title="增加" /> <item android:id="@+id/delete" android:title="删除" /> 2原创 2015-11-02 13:34:29 · 322 阅读 · 0 评论 -
代码重构笔记
重构是为了提升可读性、可维护性、可扩展性。当你不能很清晰的理解这段代码,就需要考虑重构,重构让代码变的更简单、清晰。重构手法: 1.提取子函数 从一个大代码块中提取到子函数。从而使得原本很长的函数拆分为更多细小的函数,方便阅读。提取子函数又使我们给子函数命名,良好的命名又会给函数产生自解释的作用。2.上移函数到父类 当A类中使用到 a()方法,而B类等多个类中也需要实现此方法,这个时候就可以原创 2017-05-15 11:11:32 · 272 阅读 · 0 评论 -
子类继承父类(super)
public class Animal { public void chi(){ System.out.println(“吃”); } }public class Cat extends Animal { @Override public void chi() { //覆写的方法为空 } }新建子类实例,...原创 2017-05-15 12:04:08 · 547 阅读 · 0 评论 -
java编程中避免空指针
1.变量先初始化,在使用 2.使用对象时,先判断再使用,if(对象 != null) 3.如String str = null; str.spilt(); 就会报空指针 4.对象中的所有属性都会自动添加默认值原创 2017-07-01 09:33:35 · 278 阅读 · 0 评论 -
进程、单线程和多线程
进程:如QQ.exe,LOL.exe等都是进程,也就是APP就是一个进程。 单线程:代码按调用顺序往下执行,没有出现两段代码交替运行; 多线程:代码可以交替运行,线程之间并发运行,每个线程是独立的。 多线程的应用:比如下载文件、应用等,就是同时开几条线程去下载,所以速度快很多。 进程和线程的区别:进程至少有一个或一个以上线程;线程存活在进程中;进程死亡,线程原创 2015-10-31 15:01:53 · 385 阅读 · 0 评论 -
线程同步、线程同步跟Runnable的区别
线程同步:创建多条线程,要一条线程执行完run()方法,下一个线程才能进入run()方法,线程同步就是为了避免同一条件下不允许多条线程同时进入而制造出来的方法。runnable跟同步的区别:runnable在同一条件下可以同时进入多条线程,而同步不行,runable数据共享。例子,售票台有ticket=100张票,每卖一张run(){ticket--;},当买到只剩一张时,这时线程原创 2015-10-31 15:02:44 · 430 阅读 · 0 评论 -
关于static
static :全局变量\常量 在Android上,有许多人都建议不要使用static 原因:1.出现不安全的问题 2.全局变量:APP启动就一直存在,直到APP被杀死才会回收掉。 根据这个情况,就会出现导致内存浪费,甚至造成内存溢出 避免: 第2种情况:就是不要滥用static就可以避免了。 第1种情况:出现不安全问题:可...原创 2018-04-02 16:40:15 · 179 阅读 · 0 评论 -
实体类修饰符和get、set方法
阅读很多书籍,都是这么描述到实体类建议使用private修饰变量,使用get、set操作变量;根据书中记载,这样使用安全,避免被外部随意使用 使用: 但我发现很多人会这样使用 当时我就头疼,第一感觉是,这不符合规范。但是使用安全,数据出错的问题并不存在呀,这样使用完全没问题啊,而且在某些时候还提供了便捷,甚至减少了方法数,于是我是问了很多人,也没问出想要的答案,回答的大概就...原创 2018-03-29 11:19:38 · 1736 阅读 · 0 评论 -
final
特性: final修饰的类不能被继承; final修饰的方法不能被子类重写 final修饰的变量是常量,只能赋值一次。原创 2015-10-31 14:59:55 · 327 阅读 · 0 评论