
Java
文章平均质量分 87
Java语言
Ang_qq_252390816
这个作者很懒,什么都没留下…
展开
-
AndroidStudio SonarLint和SonarQube的使用
环境:搭建 windows 本地环境简介SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码Bug。它可以与您现有的工作流程集成,以支持跨项目分支和拉取请求的持续代码检查。环境要求运行 SonarQube 的唯一先决条件是在你的机器上安装 Java 11(Oracle JRE 11 或 OpenJDK 11)且配置了环境变量。如果未安装Java 11 ,SonarQube(Version:9.1)服务启动失败;下载SonarQubeDownload | Son.原创 2021-10-16 18:05:27 · 6647 阅读 · 9 评论 -
Java 枚举详细用法及原码解析
Java 枚举详细解读及用法定义枚举是Java 1.5版本引入的新特性,Java 创建枚举类型要使用 enum 关键字,并且所创建的类型都是 java.lang.Enum 类的子类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类.注意:既然枚举都是Enum的子类,所以也要看一下Enum有哪些特性;Enum源码:public abstract class Enum> implements Comparable,原创 2021-04-15 08:32:07 · 257 阅读 · 0 评论 -
jad 反编译工具 字节码生成Java文件
前言今天推荐一个老牌的,易用的,有助学习编译过程的反编译工具Jad;反编译:就是把字节码转换成代码的过程;官网https://varaneckas.com/jad/国内下载:https://gitee.com/mirrors/jad#/mirrors/jad/blob/master/jad158g.win.zip注意:下载时候注意选择和自己系统匹配的jad;本文以win10使用为例;配置环境下载完成的文件是一个压缩文件,解压之后jad.exe :无法直接安装,需要配置环境原创 2021-04-07 19:31:32 · 848 阅读 · 4 评论 -
Java8 默认方法和静态方法,新特性
一,什么是默认方法和静态方法?Java 8 开始是可以有方法实现的,可以在接口中添加默认方法和静态方法。默认方法用 default 修饰,只能用在接口中,静态方法用 static 修饰,这个我们不陌生了。并且接口中的默认方法、静态方法可以同时有多个。在接口中写实现方法一点也不稀奇,像这样的用法,从 Java 8 到 Java 14 已是遍地开花,到处都可以看到接口默认方法和静态方法的身影。比如我们来看下在 JDK API 中 java.util.Map 关于接口默认方法和静态方法的应用。转载 2021-03-19 19:52:28 · 863 阅读 · 0 评论 -
Java和Android commons-codec使用及NoSuchMethodError问题
简介Commons codec,是Apache开源组织提供的用来处理常用的编码方法的工具类包,例如DES、SHA1、MD5、Base64,URL,Soundx等等。不仅是编码,也可用于解码。常用类及功能1、Base64编码和解码 2、Hex编码和解码 3、MD5加密(MD5是不可逆算法,只能加密) 4、SHA加密 5、Metaphone和Soundex 六、URLCodec源码地址https://commons.apache.org/proper/commons-codec/dow..原创 2020-09-24 20:08:27 · 1349 阅读 · 0 评论 -
Java 基于Socket的UDP通信
前言网络编程三要素:IP,端口号,协议IP:每个设备在网络中的唯一标识,每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。端口号:每个程序在设备上的唯一标识,每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。端口号范围从0-65535。编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。协议:为计算机网络中进行数据交换而建立的规则、标准或约定的集合; UDP...原创 2020-09-13 22:05:10 · 1458 阅读 · 0 评论 -
Java8 新特性 方法引用和构造器引用
方法引用方法引用:若Lambda表达式体中的内容已经有方法实现了,那么我们可以是使用方法引用;也可以认为方法引用是Lambda表达式的另外一种表现形式,这样可以使代码更简洁;方法引用分类类型 方法引用 Lambda 静态方法引用 类名::静态方法名 (args) -> 类名.staticMethod(args) 实例方法引用 对象::实例方法名 (args) -> 对象.instMethod(args) 对象方法引用 类名::实例原创 2020-08-30 21:28:07 · 373 阅读 · 0 评论 -
Java8 新特性 新增的函数式接口
简介函数式接口:接口中只有一个抽象方法时,但是可以有多个非抽象方法;可以使用注解@FunctionalInterface修饰,这样可以检查是否是函数接口;Java8之前的函数式接口常见的有:java.lang.Runnablejava.util.concurrent.Callablejava.util.Comparatorjava.io.FileFilterJava8 新增的四大函数式接口1,Consumer<T> :消费型接口 void acce...原创 2020-08-25 23:21:00 · 657 阅读 · 0 评论 -
Java8 新特性Lambda表达式
简介1,Lambda 表达式,也可称为闭包,是Java 8 中新加入的最重要新特性。2,Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中,是面向函数式编程的思想)。3,使用 Lambda 表达式可以使代码变的更加简洁紧凑。4,用(参数列表) -> {执行语句} 就可以代替整个匿名内部类,参数列表其实就是接口中待实现的方法参数;语法格式(参数...) -> {执行语句}主要分为三部分:1,左侧:Lambda表达式的参数列表2,中间:“-&..原创 2020-08-24 20:31:39 · 294 阅读 · 0 评论 -
Java中的抽象类和接口以及内部接口
一,抽象类:用abstract修饰的类称为抽象类;抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类或者接口;抽象类的子类要么是抽象类,要么实现所有父类的抽象方法;抽象类的成员方法的特点:抽象方法表示的是强制要求子类做的事;非抽象方法表示的是子类继承的事,提高了代码的复用性;一个抽象类没有抽象方法的目的是:不让其他类创建本类多项,让其子类完成创建对象;二,接口:是比抽象类...原创 2019-10-24 20:21:04 · 1147 阅读 · 0 评论 -
Java 中的多态详解
多态现实事物经常会体现出多种形态,例如猫是动物的一种,则具体的加菲猫,既是猫的一种也是动物的一种,即出现两种形态;多态的种类:1,普通类的多态public class Demo1 { public static void main(String[] args) { Book1 b = new AndroidBook(); }}class Book1{ ...原创 2019-10-20 23:39:48 · 656 阅读 · 0 评论 -
Java 内部类的几种分类
内部类概述:内部类可以直接访问外部类的成员,包括私有的;外部类要访问内部类的成员,必须先创建对象;内部类创建对象:外部类名.内部类名 对象名 = 外部类对象.内部类对象;普通内部类:没有static修饰,且定义在外部类的类体中1.普通内部类中的方法可以直接使用外部类的实例变量和实例方法。2.在常规内部类中可以直接用内部类创建对象public class OuterCl...原创 2019-10-20 23:39:09 · 556 阅读 · 0 评论 -
Java 动态代理和静态代理使用详解及区别
一,动态代理Java领域中,常用的动态代理实现方式有两种,一种是利用JDK反射机制生成代理,另外一种是使用CGLIB代理。JDK代理必须要提供接口,而CGLIB则不需要,可以直接代理类。本文主要介绍通过JDK反射机制生成代理;JDK提供的代理只能针对接口做代理通过具体例子分析什么是动态代理例子:由于张三没时间买火车票,找李四代理;1,创建一个被代理Java interfac...原创 2019-10-14 00:11:33 · 741 阅读 · 0 评论 -
Java 什么是反射及反射的应用
一,概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。以下主要介绍通过反射获取私有的和公共的构造方法、成员变量、方法;二,获取任意类的字节码对象的几种方式Class类:Class 类的实例对象表示正在运行的 Java 应...原创 2019-09-20 02:03:10 · 804 阅读 · 0 评论 -
多种语言实现冒泡排序算法
冒泡排序 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处示例解释如下图:代码示例:Java public static void bubbleSort(int[] arr) { int[] arr = {12, 23, 34, 56, 78}; for (int i = 0; i < arr...原创 2018-12-16 18:29:23 · 1031 阅读 · 0 评论 -
Java 一个十六进制占几个字节及基本数据类型所占字节
目录节介绍十六进制所占字节Java中各进制表示基本数据类型运算符节介绍字节(Byte)是二进制数据的单位。一个字节通常8位(bit)长。既 1Byte = 8 bit ;字节(Byte)简写B;十六进制所占字节1个十六进制占4位(bit),1个字节(B)占8位(bit),所以一个十六进制占0.5个字节,即一个字节可以表示两个十六进制(2个十六进制 = 1个字...原创 2019-06-26 00:09:13 · 12687 阅读 · 2 评论 -
Java 泛型总结
一,泛型的由来:早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。二,泛型概述泛型,即“参数化类型”;顾名思义,就是将类型由原来的具体的类型(引用数据类型)参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是...原创 2019-07-02 00:19:39 · 455 阅读 · 0 评论 -
Java 数组和集合的区别
目录相同点存储元素的区别 :长度的区别:使用选择相互转换数组的补充相同点集合和数组都是Java中的容器。存储元素的区别 :1.1,数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值1.2,集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会...原创 2019-07-05 22:16:43 · 9997 阅读 · 0 评论 -
Java List和Set集合
前言集合也可以成为容器,在Java语言的开发中有很高的实用度;所以集合中的一些行为以及一些特有的特性,很有必要知道;List和Set都是Colloection的Collection 体系常用的实现类Collection中的方法: int size(); //元素个数 boolean isEmpty(); //集合是否为空,如果此集合不包含元素,则返...原创 2019-07-06 23:46:01 · 711 阅读 · 0 评论 -
Java 线程同步和线程安全
一,多线程同步1.1,多线程同步定义:一次只有一个线程可以读写共享变量。当有一个线程正在访问共享变量时,其他线程应该等到第一个线程完成之后再访问。并且多个线程不会干扰。(多个线程同时操作一个对象,在各种不同情况下,都不会造成不同的后果。)注意区分这几个概念:线程 多线程 多线程并发 多线程安全 多线程同步并发(concurrency)简单来说,就是cpu在同一时刻要执行多个任务。...原创 2019-08-25 20:48:07 · 1021 阅读 · 0 评论 -
Java Map集合
Map接口概述查看Map API可以知道: 1,将键映射到值的对象 2,一个映射不能包含重复的键 3,每个键最多只能映射到一个值Map接口和Collection接口的区别 1,Map是双列的,Collection是单列的 2,Map的键唯一,Collection的子体系Set是唯一的 3,Map集合的数据结构值针对键有效,跟值无关...原创 2019-07-07 23:54:27 · 547 阅读 · 0 评论 -
Java 多线程介绍及使用技巧
一,简介1,什么是线程 线程是程序执行的一条路径, 一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率, 可以同时完成多项工作 有时称为轻量级进程,是CPU使用的基本单元;2,线程组成 由线程ID、程序计数器、寄存器集合和堆栈组成。3,多线程的应用场景 迅雷开启多条线程一起下载 QQ同时和多个人一起视频...原创 2019-08-25 20:46:51 · 502 阅读 · 0 评论 -
Java 常用IO流(字节流和字符流)详解
一,简介及分类IO流用来处理设备之间的数据传输;JAVA对数据的操作是通过流的方式;JAVA用于操作流的类都在IO包中流按流向分为两种:输入流,输出流。流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字符流 : 字符流只能操作纯字符数据,比较方便。区别:字节流每次读写一个字节,而字...原创 2019-09-08 23:59:17 · 1351 阅读 · 0 评论 -
Java递归及案例分析
一,什么是递归?递归:方法内自己调用自己伪代码private void method(){ method();}二,构成递归的条件1,递归结束条件//伪代码private int fun(int num){ if(num==1||num ==2){ //递归结束条件 return 1; } }2,递归方法的规律//用递归实现斐波那契数列,或...原创 2019-09-10 23:39:41 · 2017 阅读 · 0 评论