
java知识回顾
记录点点滴滴的学习
胡小牧
岁月推动着年华,伴随着流水的脚步走过春夏秋冬。回想一路走来磕磕绊绊,感谢前辈们的无私奉献,本文重在共享,欢迎大家转载,评论,收藏,点赞,谢谢,如果您对文章存在疑问,或者和您的文章类似,请私信,----------------期待是心痛的根源,心不动,则不痛。
展开
-
Java map 知识
Java map:Map 接口中键和值一一映射. 可以通过键来获取值map 的方法如下:序号 方法描述 1 void clear( ) 从此映射中移除所有映射关系(可选操作)。 2 boolean containsKey(Object k) 如果此映射包含指定键的映射关系,则返回true。 3 boolean containsValue(Object v) 如果此映射将一个或多个键映射到指定值,则返回true。 4 Set e...原创 2021-08-02 16:15:34 · 277 阅读 · 0 评论 -
Java 判断list中是否包含某个元素
在python 中很简单,使用 in 即可判断在java 需要使用list的contains 方法,如下: List<String> list = new ArrayList<>(); list.add("苹果"); list.add("香蕉"); list.add("菠萝"); if (list.contains("苹果")) { Log.d("------", ..原创 2021-08-02 16:05:01 · 8581 阅读 · 0 评论 -
Java 遍历map
Map<String, String> mapName = new HashMap<>(); mapName.put("张三", "18"); mapName.put("李四", "17"); mapName.put("王二", "16"); Log.d("-----", String.valueOf(mapName)); // enterset:返回此映射中包含的键的 Set 视图 ..原创 2021-08-02 15:52:42 · 130 阅读 · 0 评论 -
Java 2 Platform 中文版本地址
Java 2 Platform 中文版本地址,点击查看原创 2021-03-23 13:19:30 · 307 阅读 · 0 评论 -
float a = 3.1; 显示警告的原因
float a = 3.1; 会报错显示如下图所示其实看提示也就知道原因了java 默认带小数的为double 类型,所有我们需要转一下float 类型就行了根据提示写的是这样float a = (float) 3.1; 当然我们换可以写成float a = 3.1f;由于不区分大小写我们大写的F也行如下float a = 3.1F;...原创 2021-03-22 20:20:48 · 1150 阅读 · 0 评论 -
Java 秒换算成,天,小时,分钟,秒
代码很简单如下, int eta = 96701; int day; int hour; int minute; day = eta / (24 * 60 * 60); eta -= day * 24 * 60 * 60; hour = eta / (60 * 60); eta -= hour * 60 * 60; minute = eta / 60;原创 2021-02-23 11:44:48 · 5236 阅读 · 0 评论 -
为什么静态方法无法直接调用非静态成员变量和方法
静态方法无法直接调用非静态成员变量和方法 看到这句话,要想到形容的是这样的如下静态方法里面无法调用非静态变量下面在写一个对比非静态的方法和静态方法调用变量对比问题原因静态变量和静态的方法是属于类,不属于对象,调用的时候不需要实例化(当然如果你非要实例化之后在调用也是可以的),非静态的变量和方法是属于对象的,调用的需要先实例化,这也就是上面图片中的name报错的原因,大家需要注意,无法直接调用,并不是无法使用,我们实例化对象之后就可以调用的.为了更好的理解,我写了一个dem原创 2021-01-05 14:36:12 · 1376 阅读 · 2 评论 -
Java 内部类为什么不能用静态变量和静态方法(非静态内部类为什么不能有静态成员变量和静态方法)
内部类中不能使用静态的变量和静态的方法,这句话今天刚听到的时候感觉没毛病,但是,内部类中也不一定不能使用静态的变量,我们可以通过添加final 的方法的来使用,内部类中静态的方法是不能使用的看下面的代码提示错误了,具体提示如下 内部类不能有静态声明我们添加final 这样就可以编译通过了,这个原因是把静态的变量变成静态的常量了,内部中不能使用静态的方法这个是一定的如下 无论是否添加final 都会提示报错的内部类中不能使用静态方法的原因分析:内部类的实例化是由外部类实原创 2021-01-04 18:12:52 · 3103 阅读 · 1 评论 -
Java List与ArrayList 的区别(List list =new Arraylist(); ArrayList<String> arrayList = new ArrayList())
一般想知道List 与ArrayList 的区别可能大部分都是看到了List list = new ArrayList();和ArrayList arrayList = new ArrayList<>();想知道它们的区别?List 是一个接口,如果忘记点击List 跳转到源码里面看下List的如下ArrayList 是一个类 他实现了List 这个接口所以List 里面的方法,ArrayList 里面也都有,但是ArrayList 里面新增的方法List 里面是没有的比如从原创 2020-12-19 15:36:14 · 2236 阅读 · 1 评论 -
Java 实例化的理解
理解实例化就是弄清楚类和对象的关系可以参考我之前写的类和对象: https://huxiaomu.blog.youkuaiyun.com/article/details/89495621类:是对象定义属性和行为,对象: 对象是类的一个实例,有状态和行为看下面的代码public class Animal { Animal animal = new Animal(); Animal animal1 = new Animal();}Animal 是一个类animal 和animal原创 2020-12-19 14:12:05 · 388 阅读 · 2 评论 -
Android/Java 单例使用总结
学而时习之,温故而知新.什么是单例?单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式特点1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。看到上面的文字是否能够理解,如果不能理解下面举个例子说下单例(希望能更好的理解)假如下载有一个类,这个类里面有一个方法, 如果要使用这个类里面的方法,通常我们都是new 这个类然后在调用这个类里面的方法,但是如果有很多地方都使用了这个类里面的方法,如果.原创 2020-12-15 14:11:30 · 614 阅读 · 0 评论 -
Java/Android 调用类里面的方法
调用类里面的方法 一般都是new 调用的类然后就可以直接调用类里面的方法了下面写一个类和调用public class LaneInfo { public LaneInfo() { } public void Method() { Log.e("-----", "method被调用了"); }}调用 LaneInfo laneInfo = new LaneInfo(); laneInfo.Method();或原创 2020-12-10 15:28:28 · 1013 阅读 · 0 评论 -
Java List 更换指定位置的元素
Java List 更换指定位置的元素 使用的方法是list.set() 方法下面写一个list 说下具体的使用 List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); Log.e("-------原来的list:", String.valueOf(list)); lis原创 2020-11-28 18:31:57 · 26590 阅读 · 0 评论 -
Collections.addAll() 的使用 以及和list.addAll() 的区别
Collections 是java.util 下的一个类 ,可以直接使用下面下一个往list 里面添加数据的方法普通的写法 ArrayList<String> list = new ArrayList<>(); list.add("河南"); list.add("郑州"); list.add("开封"); list.add("周口"); list.add("商丘");使用:Col..原创 2020-11-28 17:26:38 · 12252 阅读 · 0 评论 -
Java 打印数组的方法
如果是打印整个数组的方法 使用Arrays.toString(array)比如:int[] array = {1, 2, 3};System.out.println(Arrays.toString(array));如果是打印输入的每一项可以使用for 循环和foreach 循环for 循环: int[] array = {1, 2, 3}; for (int i = 0; i < array.length; i++) { System.原创 2020-09-24 16:48:52 · 458 阅读 · 0 评论 -
Java return 关键字的使用
首先回顾下基本的知识 ,方法前有void代表无返回值,没有void有返回值,这也是我们写的不是空方法的时候回提示我们添加return的原因,return 一般有2个作用(1)方法的结束(2)返回方法指定类型的值 (注意返回指定类型的值需要改方法为空方法)1 方法的结束比如下面的一个判断 for (int i = 0; i < 10; i++) { if (i == 5) { return; ...原创 2020-09-16 11:48:07 · 674 阅读 · 0 评论 -
Java 参数后面跟三个... 的作用
三个点 是 表示改参数是可变长参数为了更好的理解举个例子 有时候在写工具类的时候可能考虑到这个方法有时候可能输出1或者2个或者3个等等不同的数,这个时候不确定的时候 使用... 非常的方便public class test { public static void main(String[] args) { myTest("A"); // myTest("A", "B"); // m..原创 2020-07-28 23:12:42 · 515 阅读 · 0 评论 -
java jdk 环境变量配置(window 10 系统)
oracle 官网下载 jdk 安装到一个目录例如我的安装目录然后就是打开 环境变量计算机-右键最下面有个属性- 高级属性点击环境变量记得刚开始的时候自己学网上创建JAVA_HOME classpath 后来发现没有必要创建他们也是为了指定目录点击环境变量之后,在点击path -->之后在点击浏览如下然后跳到jdk安装的目录 然后选择bin...原创 2019-06-24 21:24:33 · 272 阅读 · 0 评论 -
Java 回调机制
回调: 是一种常见的设计模式.在这种模式中可以指出某个特定事件发生时应采取的动作回调的思想是:类A的a()方法调用类B的b()方法 类B的b()方法执行完毕主动调用类A的callback()方法为了理解上面的会 写一个demo老师让leon 算一个算术题,leon使用计算器算出结果,创建一个学生类package callback;public class Studen...原创 2019-06-06 15:24:42 · 269 阅读 · 0 评论 -
Java 异步与同步的区别
同步: 所有操作完成之后,才会通知用户操作完成了.异步:不用等所有操作完成之后,就会通知用户操作完成了,然后后台会继续操作直到完成结束.为了方便理解 举例个常见的android 网络请求使用的异步请求, 为啥不用同步呢假如改成同步了, 要等所有的操作完成之后才会通知用户操作完成,假如主线程在这个期间等待超过了5sandroid 这边会提示 anr 应用程序无响应. 所以我们选...原创 2019-06-06 09:59:52 · 510 阅读 · 0 评论 -
Java 值传递与引用传递
1、值传递在方法的调用过程中,实参把它的实际值传递给形参,此传递过程就是将实参的值复制一份传递到函数中,这样如果在函数中对该值(形参的值)进行了操作将不会影响实参的值。因为是直接复制,所以这种方式在传递大量数据时,运行效率会特别低下。2、引用传递引用传递弥补了值传递的不足,如果传递的数据量很大,直接复过去的话,会占用大量的内存空间,而引用传递就是将对象的地址值传递过去,函数接...原创 2019-05-30 17:52:40 · 405 阅读 · 0 评论 -
Java 二进制,八进制,十进制,十六进制
学而时习之,温故而知新二进制特征:1 : 有2个数字组合,"0" 和"1"2 : 运算时逢2进1例如 101010八进制的特点:1: 有 8个数组组成 0,1,2,3,4,5,6,72 : 运算时逢8进1例如: 014十进制的特点:(最熟悉的一个)1: 有10个数组组成0,1,2,3,4,5,6,7,8,92:运算时逢10进1十六进制的特点:...原创 2019-05-30 15:08:34 · 440 阅读 · 0 评论 -
Java 静态方法与非静态方法的调用
调用静态方法 一般格式如下类名.方法() //应为静态方法属于类本身,在同一个类中可以直接 调用 方法()调用非静态方法 格式对象名.方法()一个小demo 方便理解package me;public class Book { public void info() { //定义一个方法 String name = "英语"; //局部变量...原创 2019-05-28 17:35:41 · 7346 阅读 · 2 评论 -
Java 对象的理解
之前写过对象的一遍博客,不过没有写demo 说其是怎样调用方法和访问属性的这里在补充一下 ,稳固知识,--------------------------------------------------------------------------------对象:是类的实例,它是类的变量,对象在使用前需要声明, 对象声明的格式与基本数据类型的格式相同,其语法为类名 ...原创 2019-05-28 17:14:31 · 451 阅读 · 0 评论 -
Java 选择排序
将数组中的没一个元素都与第一个元素经行比较,如果这个元素小于第一个元素,就将这两个元素交换位置.package me;import java.util.Arrays;public class Me { public static void main(String[] args) { int[] arr = {3, 2, 5, 8, 6, 4, 9}; ...原创 2019-05-28 16:56:00 · 206 阅读 · 0 评论 -
Java 插入排序
插入排序就是定义一个数 插入之后与前后2个数比较package me;import java.util.Arrays;public class Me { public static void main(String[] args) { int [] arr = {3,2,5,8,6,4,9}; //插入排序 int i ,j , k; ...原创 2019-05-28 16:50:01 · 926 阅读 · 0 评论 -
Java 顺序查找
Java 顺序查找就是让关键字与队列中的数从第一个开始比较直到找出给定关键字相同的数为止,package me;public class Me { public static void main(String[] args) { int [] arr = {3,2,5,8,6,4,9}; //用冒泡排序 int find = 8;//要查找的数据 ...原创 2019-05-28 16:35:06 · 433 阅读 · 0 评论 -
Java 二分法查找
二分法查找的步骤1 查找前元素先排序2 确定中间区域的位置mid=(low+high)/23 比较 如果等于要查找的值则直接返回,如果大于查找的值,那么则去小的部分查找每次则会减1 如果要查找的值小于中间值则去比较大的区域查找每次加1package me;import java.util.Arrays;public class Me { public stat...原创 2019-05-28 16:22:09 · 363 阅读 · 0 评论 -
Java 冒泡排序
冒泡排序的原理有一下几个步骤1 逐一比较数组中相邻的两个元素,如果后面的数字小于前面的数组,就交换前后元素2 经过一轮的比较之后一定有一个最大的排在后面的位置3 每次比较剩下的元素,经过n-1次比较,可以实现排序.package me;import java.util.Arrays;public class Me { public static vo...原创 2019-05-28 15:19:23 · 2473 阅读 · 0 评论 -
Java 数值大小比较
1: 2个数的最大数package me;public class Me { public static void main(String[] args) { int a =10; int b = 6; int max = a>b?a:b; //方法一 System.out.println(max); int m...原创 2019-05-28 14:47:06 · 9421 阅读 · 0 评论 -
Java 静态变量,静态方法,静态常量(java static 关键字)
Java 静态变量,静态方法,静态常量 就是变量 ,方法,常量前面添加了static 关键字为什么要使用静态的呢有时候在处理问题时会需要两个类在同一个内存区域共享一个数据, 不如现在 Main 类中用到一个 NAME常量而 有一个Book类中也用到了NAME常量,这时就没有必要在2个类中都创建NAME常量了 为了解决这个问题 我们可以把这个NAME常量设置为static ...原创 2019-05-28 10:43:10 · 2160 阅读 · 0 评论 -
Java this 关键字使用
this 引用就是本类的一个对象理解这句话看下面一段代码package me;public class Me { String name; //成员变量 int age; public Me(String name, int age) { //这里name和age 是构造方法里面的局部变量 this.name = name; // 把构...原创 2019-05-28 10:04:31 · 320 阅读 · 0 评论 -
Java 成员变量与局部变量
成员变量:在整个类中都有效局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放其特点就是只在定义它的方法中有效,package me;public class Book { String name = "语文"; // 成员变量 public void info() { //定义一个方法 Strin...原创 2019-05-27 13:23:31 · 409 阅读 · 0 评论 -
Java 构造方法与成员方法的区别
学而时习之,温故而知新.先说下自己怎样区分它们认定构造方法是,类名与构造方法相同,这个方法就是构造方法,这个类中除了构造方法以外的方法都是构造方法,原因是在类中,除了变量外的基本都是成员方法。看一个小案例package me;public class Me { private String name; //成员变量 public Me(String nam...原创 2019-05-27 10:48:30 · 7873 阅读 · 3 评论 -
Java成员变量与成员方法
学而时习之,温故而知新.成员变量:在Java中对象的属性成为成员变量, 有时候很多人也喜欢把成员变量等同于全局变量, 因为成员变量在某一个类中都有效(成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。)成员方法:在Java中使用成员方法来对应与类对象的行为,在类中,除了变量外的都是成员方法。一个案...原创 2019-05-27 10:28:49 · 3243 阅读 · 0 评论 -
Java 线程 知识
学习线程 先了解 线程与进程之间的关系 线程:(线程是cpu调度的最小单位)我们可以说是进程中执行运算的最小单位。进程:(进程是资源分配的最小单位)我们可以说是一段程序执行的过程,如果还是不清楚2着的话可以打一个比喻 进程 相当于火车, 线程就是火车的没一个车厢.------------------------------------------------...原创 2019-05-24 17:33:54 · 405 阅读 · 0 评论 -
Java IO 流 学习 总结
I/O 主要是对文件进行处理, 其主要包含3个方面的内容1 input 输入2 out 出入3 File 文件Java 流的概念流是一组有序的数据序列,流提供了一条通道程序,可以是这条通道程序把源中的字节序列送到目的地.虽然I/O流通常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘,鼠标,内存活显示器窗口等,IO流的分类根据处理数据类型的不同分为...原创 2019-05-23 14:03:03 · 373 阅读 · 0 评论 -
Java 序列化
序列化概念:把对象转换为字节序列的过程称为对象的序列化。反序列化概念:把字节序列恢复为对象的过程称为对象的反序列化。什么情况下使用序列化一般我们保存文件 ,请求网络(当然有时候我们请求传的是json的时候不需要序列化,请求传String的时候需要序列化的)如何使Java类可序列化?通过实现java.io.Serializable接口,可以在Java类中启用可序列化...原创 2019-05-23 09:45:46 · 216 阅读 · 0 评论 -
Java 反射 (快速了解反射)
反射的概念JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制Java反射有三个动态性质:1、运行时生成对象实例2、运行期间调用方法3、运行时更改属性通过这些动态性质,JAVA反射可以在程序运行时获取对象和类的真实信息。Ja...原创 2019-05-22 16:41:27 · 453 阅读 · 0 评论 -
Java泛型
泛型的概念:泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型的作用:Java 泛型是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的语法: 类名<T>T 代表泛型的名称举一个例子:import java.util.ArrayList;import jav...原创 2019-05-21 16:31:15 · 527 阅读 · 0 评论