
Java
问题记录与分享
胡小牧
岁月推动着年华,伴随着流水的脚步走过春夏秋冬。回想一路走来磕磕绊绊,感谢前辈们的无私奉献,本文重在共享,欢迎大家转载,评论,收藏,点赞,谢谢,如果您对文章存在疑问,或者和您的文章类似,请私信,----------------期待是心痛的根源,心不动,则不痛。
展开
-
File类知识点回顾
File 是文件和目录路径名的抽象表示。用户界面和操作系统使用依赖于系统的路径名字符串来命名文件和目录。此类提供了一个抽象的,与系统无关的分层路径名视图。抽象路径名有两个组成部分:可选系统有关的前缀字符串,如磁盘驱动器符, "/"对于UNIX根目录下,或者"\\\\"的Microsoft Windows UNC路径,并一个零个或多个字符串名称的序列。原创 2024-01-28 22:37:06 · 409 阅读 · 0 评论 -
java split 拆分字符串
kotlin中split 的用法跟python 中的split 用法是一样的,java中由于返回值是String[] 的数组,所以。如果是这样String line ="java is a good";split 的作用是拆分字符串,使用的时候需要观察下字符串,是按照何种规律,可以按照那个方法拆分。例如 String line ="java is a good";在使用的时候需要注意下返回值如果要获取里面的内容,还是需要遍历下里面的内容。这个line 字符串里面每个字符间隔是逗号,拆分就可以使用逗号。原创 2024-01-25 00:38:52 · 565 阅读 · 0 评论 -
AtomicBoolean 的使用与介绍
AtomicBooleanAtomicBoolean是Java.util.concurrent.atomic包下的原子变量,能够保证在高并发的情况下只有一个线程能够访问这个属性值这个是boolean 值,实际的开发中也是偶尔使用到,不过自己使用AtomicBoolean 当做boolean 值来使用了下面简单的说下自己的使用,把别人总结的方法来下来了,大家可参考下 。AtomicBoolean 的方法大致如下 :public boolean compareAndSet(boolea.原创 2020-09-03 14:20:43 · 3197 阅读 · 0 评论 -
Java设计模式:观察者模式
观察者模式观察者模式又称为发布/订阅(Publish/Subscribe)模式在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。如果这句话不好理解 可以这样理解,微信公众号发布消息,订阅者获取消息,订阅了就能收到消息,没有订阅就不能收到消息什么时候考虑使用观察者模式?当对象间存在一对多关系时,则使用观察者模式优点...原创 2019-11-22 15:01:40 · 276 阅读 · 0 评论 -
ecplise 设置代码自动提示功能的设置
看下面的图把1然后找到java第三步然后输入abcdefghijklmnopqrstuvwxyz.下面看下效果这个是提示,很方便把原创 2019-11-22 13:00:23 · 273 阅读 · 0 评论 -
java 内部类的理解
内部类概念:一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类成员内部类在一个类的成员方法中。或者说,定义在一个成员方法的中的类就是局部内部类。注意:第一:成员内部类中不能存在任何static的变量和方法;第二:成员内部类是依附于外围类的,所以只有先创建了外围类才能够创建内部...原创 2019-05-09 11:06:49 · 241 阅读 · 0 评论 -
Java集合类
学而时习之,温故而知新,内容参考书籍Java.util包中提供了一些集合类,这些类又被成为容器,常见的集合类有List集合,Set集合和Map集合,其中List和Set继承了Collection接口,Collection接口是层级结构中的跟接口,构成Collection的单位称为元素,Collection接口通常不能直接使用,但是该接口提供了添加元素,删除元素,管理数据方...原创 2019-05-15 15:47:33 · 321 阅读 · 0 评论 -
Java 修饰符的总结
学而时习之,温故而知新.Java的修饰符主要分为2类1 访问修饰符2 非访问修饰符访问修饰符访问修饰符主要有public,private。protected,default主要区别public: 对所有类可见。使用对象:类、接口、变量、方法private: 在同一类内可见。使用对象:变量、方法。注意:不能修饰类(外部类)protec...原创 2019-05-21 10:55:09 · 314 阅读 · 0 评论 -
Java 线程 知识
学习线程 先了解 线程与进程之间的关系 线程:(线程是cpu调度的最小单位)我们可以说是进程中执行运算的最小单位。进程:(进程是资源分配的最小单位)我们可以说是一段程序执行的过程,如果还是不清楚2着的话可以打一个比喻 进程 相当于火车, 线程就是火车的没一个车厢.------------------------------------------------...原创 2019-05-24 17:33:54 · 405 阅读 · 0 评论 -
Java向上转型和向下转型
向上转型:子类对象转为父类向下转型:父类对象转为子类备注: 实现转型的条件就是要有继承的存在public class Main { public static void main(String[] args) { Main main = new People();//向上转型 ((People) main)....原创 2019-05-21 13:42:36 · 248 阅读 · 0 评论 -
Java泛型
泛型的概念:泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型的作用:Java 泛型是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的语法: 类名<T>T 代表泛型的名称举一个例子:import java.util.ArrayList;import jav...原创 2019-05-21 16:31:15 · 527 阅读 · 0 评论 -
Java 运算符
学而时习之,温故而知新.最近看到一个面试题,考察的是位移运算符,遗憾的是自己居然没有想到,这里特意回顾java的运算符.java的运算符 有赋值运算符,算术运算符,自增自减运算符,比较运算符,逻辑运算符,位移运算符,三元运算符,1 赋值运算符赋值运算符用 "=" 表示, 其功能就是就是将右边的操作数所含的值赋给左边的操作数比如 int a=10; 该表达式是将10赋值给变量...原创 2019-05-13 11:02:04 · 266 阅读 · 0 评论 -
java 关键字(面试题)
学而时习之,温故而知新。今天群里有人问java中true ,false 是关键字吗,这里记录下,不是关键字,我还特意翻看之前的书看看下面是 Java 语言保留使用的 50 个关键字: 关键字 goto 和 const 是 C++ 保留的关键字,目前并没有在 Java 中使用到。如果它们出 现在 java 程序中,Java 编译器能够识别它们,并产生错误信息。 ...原创 2019-05-13 11:28:37 · 1147 阅读 · 0 评论 -
java 递归思想的理解
递归递归方法是调用自身的方法看一个阶乘的demopublic class Main { /** * 5*4*3*2*1 * @param n * @return */ public static int Method(int n){ if (n==1){ return 1; ...原创 2019-05-10 16:20:37 · 605 阅读 · 0 评论 -
Java Iterator 使用
学而时习之,温故而知新.迭代器是一种模式、详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator(...原创 2019-05-15 14:35:05 · 668 阅读 · 0 评论 -
java 封装
学而时习之,稳固而知新。封装的概念封装是java的面向对象的特点之一,是将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问封装的优点:1.提高代码的安全性2.提高代码的复用性3.“高内聚”:封装细节,便于修改内部代码,提高可维护性4.“低耦合”:简化外部调用,便于调用者使用,便于扩展和写作。在android中...原创 2019-05-07 22:18:04 · 542 阅读 · 1 评论 -
java 局部内部类的理解
局部内部类:局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内例如: //外部类 public static class Man { private int age = 26; public int height = 182; public void Met...原创 2019-05-09 11:22:11 · 271 阅读 · 0 评论 -
java 静态内部类
静态内部类概念:静态内部类是指使用 static 修饰的内部类//外部类public class Main { public static void main(String[] args){ Main.Man man = new Main().new Man(); //内部类调用 Main.People people ...原创 2019-05-09 11:37:40 · 366 阅读 · 0 评论 -
java 匿名内部类
1 匿名内部类概念:匿名内部类就是一个没有显式的名字的内部类2 匿名内部类创建:匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。格式:*在使用匿名内部类时,要记住以下几个原则: 1:匿名内部类不能有构造方法它无法被继续引用以生成实例,因而不需要构造方法。在生成匿名内部类的时候,与其一...原创 2019-05-09 13:46:27 · 314 阅读 · 0 评论 -
java 抽象类
学而时习之,稳固而知新。java 抽象,抽象类 ,抽象方法·1 抽象是java面向对象的一种特点,忽略一个主题中与当前目标无关的东西,专注的注意与当前目标有关的方面.(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫做类或者接口).抽象并不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一个数据抽象,而是过程抽象.数据抽象 ...原创 2019-05-06 22:20:05 · 232 阅读 · 0 评论 -
JVM内存区域
JVM 内存共分为堆、方法区、虚拟机栈、本地方法栈、程序计数器五个部分。如下图1 堆Java堆内存是 JVM 所有线程共享的部分,在虚拟机启动的时候就已经创建.此区域的唯一目的是存放数据对象,所有的对象实例以及数组都要在堆上分配,Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为GC堆,java中的堆可以分为新生代和老年代例如:String str =...原创 2019-05-14 15:33:21 · 241 阅读 · 0 评论 -
Java 继承
学而时习之,温故而知新.java继承的概念Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,继承使用的是extends类的继承格式class 父类 { }class 子类 extends 父类 { }继承的优点:1 提高了代码的复用性2提高了代码的维护性3 建立了类与类...原创 2019-05-07 11:12:43 · 4871 阅读 · 0 评论 -
java 数组的基本操作
1 遍历数组遍历数组就是获取数组中的每个元素,通常遍历数组使用for循环例如: int [] a ={1,2,3,4}; for (int i=0;i<a.length;i++){ System.out.print(a[i]); }2 替换数组元素Arrays的静态方法fill() 可以对数组元素进行替换...原创 2019-05-09 22:46:00 · 284 阅读 · 0 评论 -
java static 作用详解
static表示 “静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,也可是修饰内部类,我们常说的静态内部类,注意外部类不能使用静态的,static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途使用注...原创 2019-05-10 14:35:26 · 240 阅读 · 0 评论 -
Java 反射 (快速了解反射)
反射的概念JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制Java反射有三个动态性质:1、运行时生成对象实例2、运行期间调用方法3、运行时更改属性通过这些动态性质,JAVA反射可以在程序运行时获取对象和类的真实信息。Ja...原创 2019-05-22 16:41:27 · 453 阅读 · 0 评论 -
Java成员变量与成员方法
学而时习之,温故而知新.成员变量:在Java中对象的属性成为成员变量, 有时候很多人也喜欢把成员变量等同于全局变量, 因为成员变量在某一个类中都有效(成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。)成员方法:在Java中使用成员方法来对应与类对象的行为,在类中,除了变量外的都是成员方法。一个案...原创 2019-05-27 10:28:49 · 3243 阅读 · 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 插入排序
插入排序就是定义一个数 插入之后与前后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 选择排序
将数组中的没一个元素都与第一个元素经行比较,如果这个元素小于第一个元素,就将这两个元素交换位置.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 对象的理解
之前写过对象的一遍博客,不过没有写demo 说其是怎样调用方法和访问属性的这里在补充一下 ,稳固知识,--------------------------------------------------------------------------------对象:是类的实例,它是类的变量,对象在使用前需要声明, 对象声明的格式与基本数据类型的格式相同,其语法为类名 ...原创 2019-05-28 17:14:31 · 451 阅读 · 0 评论 -
Java 静态方法与非静态方法的调用
调用静态方法 一般格式如下类名.方法() //应为静态方法属于类本身,在同一个类中可以直接 调用 方法()调用非静态方法 格式对象名.方法()一个小demo 方便理解package me;public class Book { public void info() { //定义一个方法 String name = "英语"; //局部变量...原创 2019-05-28 17:35:41 · 7346 阅读 · 2 评论 -
Java 异步与同步的区别
同步: 所有操作完成之后,才会通知用户操作完成了.异步:不用等所有操作完成之后,就会通知用户操作完成了,然后后台会继续操作直到完成结束.为了方便理解 举例个常见的android 网络请求使用的异步请求, 为啥不用同步呢假如改成同步了, 要等所有的操作完成之后才会通知用户操作完成,假如主线程在这个期间等待超过了5sandroid 这边会提示 anr 应用程序无响应. 所以我们选...原创 2019-06-06 09:59:52 · 510 阅读 · 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 jdk 环境变量配置(window 10 系统)
oracle 官网下载 jdk 安装到一个目录例如我的安装目录然后就是打开 环境变量计算机-右键最下面有个属性- 高级属性点击环境变量记得刚开始的时候自己学网上创建JAVA_HOME classpath 后来发现没有必要创建他们也是为了指定目录点击环境变量之后,在点击path -->之后在点击浏览如下然后跳到jdk安装的目录 然后选择bin...原创 2019-06-24 21:24:33 · 272 阅读 · 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 构造方法与成员方法的区别
学而时习之,温故而知新.先说下自己怎样区分它们认定构造方法是,类名与构造方法相同,这个方法就是构造方法,这个类中除了构造方法以外的方法都是构造方法,原因是在类中,除了变量外的基本都是成员方法。看一个小案例package me;public class Me { private String name; //成员变量 public Me(String nam...原创 2019-05-27 10:48:30 · 7873 阅读 · 3 评论 -
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 序列化
序列化概念:把对象转换为字节序列的过程称为对象的序列化。反序列化概念:把字节序列恢复为对象的过程称为对象的反序列化。什么情况下使用序列化一般我们保存文件 ,请求网络(当然有时候我们请求传的是json的时候不需要序列化,请求传String的时候需要序列化的)如何使Java类可序列化?通过实现java.io.Serializable接口,可以在Java类中启用可序列化...原创 2019-05-23 09:45:46 · 216 阅读 · 0 评论 -
Java IO 流 学习 总结
I/O 主要是对文件进行处理, 其主要包含3个方面的内容1 input 输入2 out 出入3 File 文件Java 流的概念流是一组有序的数据序列,流提供了一条通道程序,可以是这条通道程序把源中的字节序列送到目的地.虽然I/O流通常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘,鼠标,内存活显示器窗口等,IO流的分类根据处理数据类型的不同分为...原创 2019-05-23 14:03:03 · 373 阅读 · 0 评论