java
文章平均质量分 90
对java知识的一些记录
许进进
这个作者很懒,什么都没留下…
展开
-
java中的IO、NIO、Okio
java IO写这种写方法只能一个字节一个字节的写;注意把要关闭的流写在try括号中,省去了代码中finally关闭的过程,以下例子均是。private static void ioWrite() { try (OutputStream outputStream = new FileOutputStream("./demo.txt")) { outputStream.write('a'); outputStream.write('b'); } catch (F原创 2021-10-10 17:48:17 · 705 阅读 · 0 评论 -
java中的多线程:线程使用、线程安全、线程通信
Java中的多线程使用Thread: Thread thread = new Thread() { @Override public void run() { System.out.println("Thread started!"); } }; thread.start();Thread类的几个常用的方法:sleep():静态方法,使当前线程睡眠一段时间;currentThread():静态方法,返回对当前正在执行的线程对象的引用;sta原创 2021-09-13 21:38:07 · 346 阅读 · 1 评论 -
Android 调试桥:adb的入门与最佳实践(无线连接调试)
一 adb简介Android 调试桥 (adb) 是一种与设备通信,执行各种设备操作(例如安装和调试应用)的命令行工具。adb提供了对 Unix shell(可用来在设备上运行各种命令)的访问权限。adb是一种客户端-服务器程序,包括以下三个组件:客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器原创 2020-12-11 22:27:32 · 6138 阅读 · 0 评论 -
Dagger2利器系列三:原理、用途
目录一:dagger2的好处or用途1.1一切都是为了解耦1.2 增加开发效率1.3更好的管理类实例二 原理分析参考文章:一:dagger2的好处or用途1.1一切都是为了解耦一切都是为了解耦。一个类的new代码是非常可能充斥在app的多个类中的,假如该类的构造函数发生变化,那这些涉及到的类都得进行修改。设计模式中提倡把容易变化的部分封装起来。我们...原创 2020-04-22 09:02:02 · 5293 阅读 · 0 评论 -
Rxjava3文档级教程三: 实战演练
一 结合RxBinding RxBinding 的 GitHub 地址RxBinding 能够把 Android 平台的兼容包内的 UI 控件变为 Observaber 对象. 可以把 UI 控件的事件当作 RxJava 中的数据流来使用。依赖如下:Platform bindings:implementation 'com.jakewharton.rxbinding...原创 2020-04-05 18:44:30 · 8230 阅读 · 1 评论 -
Dagger2利器系列二:懒/重加载+Component 的组织关系
目录一:懒/重加载1.1 Dagger2 中的懒加载1.2Provider 强制重新加载二:Component 的组织依赖关系2.1 前言2.2 Component 的组织关系2.2.1 依赖关系2.2.3 继承关系2.3 依赖关系 vs 继承关系2.4 SubComponent 的其他问题2.4.1 抽象工厂方法定义继承关系2.4.2 重复的 M...原创 2020-04-21 18:25:46 · 5454 阅读 · 0 评论 -
Dagger2利器系列一:入门到使用
一Dagger21.1 简介:1:Dagger2起源于Dagger,是一款基于Java注解来实现的完全在编译阶段完成依赖注入的开源库。2:Dagger2主要用于模块间解耦、提高代码的健壮性和可维护性。3:Dagger2在编译阶段通过apt利用Java注解自动生成Java代码,然后结合手写的代码来自动帮我们完成依赖注入的工作。1.2 起源起初Square公司受到Guice的...原创 2020-04-20 19:13:32 · 5635 阅读 · 0 评论 -
Java内功修炼系列:注解(Annotation)
注解注解的定义Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 Java5 开始添加到 Java 的。注解即标签如果把代码想象成一个具有生命的个体,注解就是给这些代码的某些个体打标签如何自定义注解 注解通过 @interface关键字进行定义。 public @in...原创 2020-04-11 11:09:16 · 8529 阅读 · 1 评论 -
Rxjava3文档级教程二: 操作符全解
1 前言1.1 用操作符组合Observable对于ReactiveX来说,Observable和Observer仅仅是个开始,它们本身不过是标准观察者模式的一些轻量级扩展,目的是为了更好的处理事件序列。ReactiveX真正强大的地方在于它的操作符,操作符让你可以变换、组合、操纵和处理Observable发射的数据。Rx的操作符让你可以用声明式的风格组合异步操作序列,它拥有...原创 2020-04-05 18:45:35 · 10040 阅读 · 3 评论 -
Rxjava3文档级教程一: 介绍和基本使用
一 Rxjava3简介RxJava是响应式编程(Reactive Extensions)的java实现,它基于观察者模式的实现了异步编程接口。Rxjava 3.x 的github官网RxJava2将被支持到2021年2月28日,错误的会同时在2.x和3.x修复,但新功能只会在3.x上添加。Rxjava 3.0的一些改变:官方WikiRxjava 3.x 文档可以在官方javad...原创 2020-04-05 18:45:58 · 41755 阅读 · 10 评论 -
浅记Java多线程的三种实现方式
在JDK中,唯一带边线程的只有Thread,而无论是实现Runnable还是Callable,都只是对任务的抽象。任务和线程的关系:线程可以有很多个需要完成的任务。启动线程的方式:X extends Thread;,然后X.run X implements Runnable;然后交给Thread运行 X implements Callable;然后交给Thread运行第1、2方式...原创 2020-03-24 13:34:38 · 4843 阅读 · 1 评论 -
Java内功修炼系列:代理模式及动态代理
一 代理模式1.1 简介Java的动态代理在实践中有着广泛的使用场景,比如最场景的Spring AOP、Java注解的获取、日志、用户鉴权等。先看百度百科的定义:代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式解释起来就是,设定指定的“代理人(P...原创 2020-03-22 19:22:03 · 5840 阅读 · 0 评论 -
单例模式学习与进阶
目录一:单例定义二:单例实现模式2.1饿汉模式2.2 懒汉模式(线程不安全)2.3懒汉模式(线程安全)2.4 双重检查模式 (DCL)2.5静态内部类单例模式2.6枚举单例2.7使用容器实现单例模式三:枚举单例的推荐3.1 一般单例的缺点3.2 序列化/反射对枚举的破坏&枚举的优点3.3 枚举单例示例四:单例模式的优缺点...原创 2019-09-27 16:53:23 · 6972 阅读 · 1 评论 -
Java8新特性之Optional类的使用
一 Optional 简介:javadoc:A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value.Optional类的出现是为了减少jav...原创 2020-03-21 18:33:56 · 7621 阅读 · 1 评论 -
JAVA GC垃圾回收机制总结,请不要再问了面试官!
Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。楔子-JVM内存结构补充在上篇《JVM之内存结构详解》中有些内容我们没有讲,本篇结合垃圾回收机制来一起学习。还记得JVM中堆的结构图吗?图中展示了堆中三个区域:Eden、From Survivor、To Survivor。从图中可以也可以看到它们的大小比...转载 2020-03-21 12:28:38 · 5090 阅读 · 0 评论 -
JVM内存结构详解
你是否遇到这样的困惑:堆内存该设置多大?OutOfMemoryError异常到底是怎么引起的?如何进行JVM调优?JVM的垃圾回收是如何?甚至创建一个String对象,JVM都做了些什么?这些疑问随着学习的深入都会慢慢得到解答,而要解决这些问题的第一步,就是先了解JVM的构成。JVM内存结构java虚拟机在执行程序的过程中会将内存划分为不同的数据区域,看一下下图。如果理解了上图...转载 2020-03-20 19:13:09 · 4878 阅读 · 0 评论 -
Java8新特性之Stream流详细总结
未经允许禁止转载,转载请联系作者。目录一:什么是 Stream1.1 简介1.2 Stream API的特点:二Stream流的创建2.1 通过Collection 接口函数2.2通过Stream2.2.1通过Stream:由值创流2.2.2通过Stream:函数创流三Stream流的中间操作之常用用法3.1filter方法3.2conc...原创 2020-03-20 16:33:37 · 10070 阅读 · 2 评论 -
Lambda表达式
Lambda表达式本质上是一种匿名方法,它没有方法名、没有修饰符、没有返回值类型,使得编写代码更加简洁。只要有一个待实现方法的接口就可以使用Lambda表达式。注意:是只能有一个需要被实现的方法,不是规定接口中只能有一个方法本质上是将这唯一待实现的方法用来代替接口,或者说在具体业务逻辑代码中实现接口的匿名类。因为既然匿名类需要实现这个接口,而这个接口中又只含有唯一一个需要实现的方法,那么就...原创 2020-03-19 12:51:14 · 4825 阅读 · 0 评论 -
Java内功修炼系列:Java反射入门进阶到使用
一 反射(Reflect)1.1 引子反射之中包含了一个「反」字,所以了解反射我们先从「正」开始。一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,之后使用这个类对象进行操作。Apple apple = new Apple(); //直接初始化,「正射」apple.setPrice(4);反射则是一开始并不知道我要初始化的类对象是什...原创 2020-03-18 16:35:33 · 8689 阅读 · 2 评论 -
Java泛型深入学习和总结 看这一篇就足够!
Java语言高级特性前言java知识是作为Android开发的语言基础,虽然现在我们已经推出了kotlin,但是基于以下原因我们还是需要好好牢牢掌握java:1)SDK还是改成java,kotlin也需要编译成为java运行;2)目前大量的第三方库和继承与前任的代码都是java所写的;3)Java语言应用不仅仅在Android,就是在后台开发中也是一个最流行的语言;4)大公司面...原创 2020-03-16 14:56:06 · 5924 阅读 · 3 评论 -
java正则判断某字符串是否为网址
/** * 判断字符串是否为URL * @param urls 需要判断的String类型url * @return true:是URL;false:不是URL */ public static boolean isHttpUrl(String urls) { boolean isurl = false; St...原创 2018-10-06 23:23:53 · 16560 阅读 · 2 评论 -
Java字符序列类CharSequence
目录一:CharSequence类简介二 :应用举例三:CharSequence接口的源码:一:CharSequence类简介 是java.lang包下的一个接口,此接口对多种不同的对char访问的统一接口,像String、StringBuffer、StringBuilder类都是CharSequence的子接口; CharSequence类和...原创 2019-07-07 23:36:34 · 7125 阅读 · 0 评论 -
关于在java编程中遇到的一些细节学习(杂1)
一: eclipse中outline里面函数前面的符号意思 红色代表私有,蓝色代表公有 实体方形代表方法 空心方形代表属性 图形后加字母S代表该属性或方法为static静态的,加字母F代表它为final的。 方法后加蓝色三角代表它是继承至父类的方法 断点为蓝色小圆形 蓝色旗状图形代表书签 白底上加蓝色对钩代表t原创 2015-12-02 12:39:13 · 5408 阅读 · 0 评论 -
java泛型小结
一.泛型出现的需求首先,我们看下下面这段简短的代码: 1 publicclass Test { 2 3 publicstatic void main(String[] args) { 4 List list= new ArrayList(); 5 list.add("jinjin"); 6 list.原创 2015-10-14 17:33:45 · 5467 阅读 · 0 评论 -
java.util.Random 类的 nextInt(int num )
java.util.Random 类的 nextInt(int num ) 的介绍原创 2015-10-27 20:24:17 · 6859 阅读 · 0 评论 -
java中read()和readline()方法对比
java;read();readline()原创 2015-09-20 23:49:49 · 21182 阅读 · 2 评论 -
JavaSwing中itemStateChanged事件执行两次
从该事件的字面意思来理解,就是item的状态发生改变时触发该事件,item在这里的状态有两个,Selected 和 deSelected(即选中和未被选中),所以,当改变下拉列表中被选中的项的时候,其实是触发了两次事件,第一次是上次被选中的项的 State 由 Selected 变为 deSelected ,即取消选择, 第二次是本次被选中的项的 State 由 deSelected 变为 S原创 2017-05-14 16:57:30 · 6813 阅读 · 0 评论 -
,永远不要去比较float和double
对于float和double,永远不要去比较==因为浮点数不是精确的.Java中,if从句中float要等于零才能运算原创 2017-05-05 23:10:14 · 5933 阅读 · 0 评论 -
再看Java之温故知新(体系篇)
全手打总结不易,转载请标明出处。目录一 数据类型1.1 8种基本数据类型1.2 引用数据类型1.3 java内存机制1.3.1寄存器1.3.2栈1.3.3 堆1.3.4. 静态区/方法区1.3.5. 运行时常量池(Runtime Constant Pool)1.3.6 直接内存(Direct Memory)二:面向对象思想2.1封装2....原创 2019-06-20 17:38:53 · 25563 阅读 · 40 评论 -
Java:内部类与匿名内部类
一: 什么是内部类(Java 内部类,成员类,局部类,匿名类等):根据内部类的位置不同,可将内部类分为1. 成员内部类2. 局部内部类class A{ //成员内部类 class B{ } public void show1() { //局部内部类 class C{ } }}1.1成员内...原创 2019-05-24 13:54:33 · 5146 阅读 · 0 评论 -
java命名和注释规范总结
一、总体规则1)、名称只能由字母、数字、下划线、$符号组成2)、不能以数字开头3)、不能使用JAVA中的关键字。4)、不允许出现中文及拼音命名。二、具体约定1、项目名小写2、包名小写3、类名首字母大写,每个单词的首字母大写。public class MyClass{}4、变量名、方法名首字母小写,每个单词的首字母大写。private Stri...原创 2019-04-30 15:32:37 · 5674 阅读 · 0 评论 -
Java:float/double的精度问题以及大数/小数操作(BigInteger类、BigDecimal类)
一: int、float、double精度问题float/int占32位(bit)4字节,double占 64位8字节。float ,1位符号位, 8位指数位,23位尾数位double,1位符号位,11位指数位,52位尾数位float尾数位23位,2^23=8.3E6,7位,所以不同的编译器规定不同,有些是7位,有些8位double尾数52位,2^52=4.5E15,15位,所以doub...原创 2019-04-11 16:04:26 · 6374 阅读 · 0 评论 -
Java关键字与JSON字段定义冲突:unexpected token
若是JSON中定义的字段名使用了Java中的关键字,不准许在JavaBean中定义,可以使用@SerializedName注解:@SerializedName(“switch”)private String myswitch;@SerializedName(“app_version_code”)private int versionCode;说明:JSON字符串中的字段switch对应...原创 2018-12-04 20:57:25 · 6338 阅读 · 0 评论 -
SHA1加密算法(java实现)
SHA1加密算法SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种...转载 2018-10-06 23:18:52 · 61608 阅读 · 1 评论 -
java /python UUID 生成
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同...原创 2018-10-06 23:05:54 · 6513 阅读 · 0 评论 -
java/Android error系列01: Value of type org.json.JSONObject cannot be converted to JSONArray
在使用官方提供的:JSONObject来解析json数据时报错:Value of type org.json.JSONObject cannot be converted to JSONArray一般得到的json返回数据:jsonData解析如下:: private void parseJSONWITHJSONObject(String jsonData){ JSO...原创 2018-06-21 17:54:47 · 12681 阅读 · 3 评论 -
JAVA SWING 日期选择控件(目前支持JLable和JTextField)
package com.monitor.date;import java.awt.BasicStroke;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Cursor;import java.awt.Dimension;imp转载 2017-05-06 16:59:21 · 12285 阅读 · 9 评论