
Java 基础知识
文章平均质量分 60
学习Java是为了探索你没有探索到的世界。
故事写在心里-
《所有的王者都是从青铜过来的,没有捷径》靠自己A.
展开
-
ArrayList 和 LinkedList 的区别,ArrayList 为什么查询快(为 什么用数组就快)
原创 2022-03-23 15:07:52 · 466 阅读 · 0 评论 -
java反射机制的优点和缺点
一、反射机制的优点首先,反射机制极大的提高了程序的灵活性和扩展性,降低模块的耦合性,提高自身的适应能力。其次,通过反射机制可以让程序创建和控制任何类的对象,无需提前硬编码目标类。再次,使用反射机制能够在运行时构造一个类的对象、判断一个类所具有的成员变量和方法、调用一个对象的方法。最后,反射机制是构建框架技术的基础所在,使用反射可以避免将代码写死在框架中。java的反射机制就是增加程序的灵活性,避免将程序写死到代码里。例如: 实例化一个 person()对象, 不使用反射, new person(原创 2022-03-15 21:29:05 · 2821 阅读 · 0 评论 -
Java获取反射的三种方法
概述:Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为 Java 的反射机制。public class CollectionTest { public static void main(String[] args) { HashSet<String> hashset = new HashSet<>();原创 2022-03-13 13:28:16 · 4142 阅读 · 0 评论 -
Idea快捷键大全(Windows)保存起来,用着就来看看。。
快捷键 介绍Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)Ctrl + W 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范原创 2022-01-16 17:40:07 · 886 阅读 · 0 评论 -
字节流读取报错:java.lang.Exception: Method CopyFile should have no parameters (错误解决办法)
错误还原:近期在回顾Java基础到iIO流时,自己实现一段小Demo版本的需求,就是先读取本地.JPG 格式的文件到另外一个盘符,根据字节流来实现的。先写出一个基础版本的,接下来在基础版面本上进行优化:/** * 使用IO 字节流 读取 本地非文本文件,并复制到另外一个敌方 */public class FileInputOutPutStream { public static void main(String[] args){ //创建文件读取流 FileInputStream原创 2021-11-28 15:17:47 · 714 阅读 · 0 评论 -
使用 IO 流 读取 本 地 文 件 (两种方式)
/** * 使用IO 流读取本地文件 */public class FileReadWrite { public static void main(String[] args) { FileReader fr = null; try { //1. 创建读取文件 fr = new FileReader(new File("E:\\11.txt")); char[] chas = new char[1024]; int len; while ((len = fr.r原创 2021-11-25 23:06:13 · 1612 阅读 · 0 评论 -
String 与char[] bytes 数组之间的转换
// String 与char[] 之间的转换@Testpublic void Test3() { String str = "abc123"; char[] charArray = str.toCharArray(); for (int i = 0; i < charArray.length; i++) { System.out.println(charArray[i]); } //char与String 之间的互转 char[] chas = {'h', 'e', 'l', '原创 2021-11-25 22:10:08 · 226 阅读 · 0 评论 -
字符串String 与char[] 之间的互相转换
// 字符串String 与char[] 之间的转换@Testpublic void Test3(){ String str ="abc123"; char[] charArray = str.toCharArray(); for (int i = 0; i < charArray.length; i++) { System.out.println(charArray[i]); }// char与String 之间的互转 char[] chas = {'h', 'e',原创 2021-11-21 11:58:09 · 511 阅读 · 0 评论 -
使用同步代码块解决设计模式之懒汉式线程安全问题
package Com.bigDataWork_intentjava;// 懒汉式public class MySinleton2 { public static void main(String[] args) { Order order = Order.getInstance(); Order order3 =Order.getInstance(); System.out.println(order==order3); System.out.println(order.equals原创 2021-11-14 15:13:17 · 3429 阅读 · 0 评论 -
Java 8 中接口的新特性
package Com.bigDataWork_exer04;/** * 此接口类似于工具类 */public interface ComparA { //静态方法 public static void method() { System.out.println("compar: 北京"); } // 默认方法 public default void method2() { System.out.println("compar :上海--"); } // 默认方法 def原创 2021-11-07 22:10:02 · 120 阅读 · 0 评论 -
理解 Java 基础创建接口匿名实现类的对象.
1、创建了接口的非匿名实现类的非匿名对象2、创建了接口的非匿名实现类的匿名对象3、创建了匿名实现类的匿名对象4、创建了接口的匿名实现类的匿名对象public class USBTest { public static void main(String[] args) { Computer computer = new Computer(); // 1、创建了接口的非匿名实现类的非匿名对象 Flush flush = new Flush(); computer.TraansferDa原创 2021-11-07 16:43:51 · 632 阅读 · 0 评论 -
数组算法之 线性查找与 二分法查找算法 基础复习
public class ArrayTest2 { /** * 数组的线性查找 * * @param args */ public static void main(String[] args) { String[] arr = new String[]{"AA", "BB", "CC", "DD", "JJ", "MM"}; String dest = "MM"; boolean isflag = true; for (int i = 0; i < arr.len原创 2021-08-05 00:26:09 · 75 阅读 · 0 评论 -
吃透Java IO:字节流、字符流、缓冲流
文章目录1.Java IO流有什么特点?2.Java IO流分为几种类型?3.字节流和字符流的关系与区别?4.字符流是否使用了缓冲?5.缓冲流的效率一定高吗?为什么?6.缓冲流体现了Java中的哪种设计模式思想?7.为什么要实现序列化?如何实现序列化?8.序列化数据后,再次修改类文件,读取数据会出问题,如何解决呢?1. 初识Java IO1.1 IO流分类1、输入流与输出流2、字节流与字符流3、节点流和处理流完整的IO分类图如下:1.2 案例实操2、BufferedInputStream、BufferedO转载 2021-02-05 16:42:04 · 2117 阅读 · 0 评论 -
Java 静态代理与 动态代理
三、反射的作用和动态代理 反射作用总结就是:1.动态地创建类的实例,将类绑定到现有的对象中,或从现有的对象中获取类型。2.应用程序需要在运行时从某个特定的程序集中载入一个特定的类。那么什么是动态代理呢?先给出百度的答案:动态代理,就是根据对象在内存中加载的Class类创建运行时类对象,从而调用代理类方法和属性。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。而代理模式又分为静态原创 2021-02-03 10:48:07 · 131 阅读 · 0 评论 -
Java 反射 与 主要API
控制你的大脑,控制你的行为,你会得到更多,收获很多。文章目录:一、反射相关的主要API:二 、代码例子演示:三、反射测试类:一、反射相关的主要API:API 名称代表含义Java.lang.class代表一个类java.lang.reflect.Method代表类的方法java.lang.reflect.Field代表类的成员变量java.lang.reflect.Constructor代表类的构造器二 、代码例子演示:1、创建了一个Pe.原创 2021-01-31 19:24:18 · 318 阅读 · 1 评论 -
IO流知识体系中 对象流使用与理解
文章目录:一、对象流的分类:二、自定义类实现序列化和反序列化操作:三、代码片段演示:四、代码观看步骤:此知识点是在IO 流体系当中的最后一章节一、对象流的分类:ObjectInputStream 和 ObjectOutputStream对象流作用:用于存储和读取基本数据类型数据对象的处理流。它的强大之处就是可以把Java 中的对象写入到数据源中,也能把对象从数据源中还原会回来。序列化:用ObjectOutputStream类保存基本类型数据或对象的机制反序列化机制:用ObjectInputS原创 2021-01-27 14:22:16 · 272 阅读 · 0 评论 -
多线程、集合、IO 流常用方法整合和使用步骤详细整理
文章目录:壹------》多线程有四种创建方式:贰------》集合:叁------》Map:肆------》 泛型:伍------》IO流分类:壹------》多线程有四种创建方式:继承Thread 类 实现runnable 接口实现Callable 接口实现runnable接口,创建 ThreadPoolExecutor 方式. 去创建线程、具体操作步骤:1、继承Thread类、实现runnable接口、实现Callable 接口、重写run() 方法 {在run方法内编写需要执行的逻辑原创 2021-01-26 22:08:03 · 613 阅读 · 0 评论 -
BufferedInputStream和BufferedOutputStream 非文本文件的复制
package Com.bigDataWork_IO;/** BufferedInputStream BufferedOutputStream BufferedReader BufferWrite作用:提高流的读取,写入的速度*/import org.junit.Test;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.Buffe.原创 2021-01-26 16:36:18 · 173 阅读 · 0 评论 -
字符流代码文件的写入与读出
package Com.bigDataWork_IO;import org.junit.Test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;将zq.txt 文件内容读入程序中,并且输出到控制台。以下是一个一个字符进行读取。public class FileReadWriteTest {@Test.原创 2021-01-26 15:10:14 · 261 阅读 · 0 评论 -
wait方法和sleep方法的区别
一.概念、原理、区别Java中的多线程是一种抢占式的机制而不是分时机制。线程主要有以下几种状态:可运行,运行,阻塞,死亡。抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行。当有多个线程访问共享数据的时候,就需要对线程进行同步。线程中的几个主要方法的比较:Thread类的方法:sleep(),yield()等Object的方法:wait()和notify()等每个对象都有一个机锁来控制同步访问。Synchronized关键字可以和对象的机锁交互,来实现线程的同步。由于sleep原创 2021-01-26 10:17:43 · 528 阅读 · 0 评论 -
最通俗易懂搞定HashMap的底层原理
文章目录:HashMap的底层原理面试必考题。一:HashMap的节点:二:HashMap的数据结构:三:HashMap存储元素的过程:哈希码的特点是:四:HashMap中的两个重要的参数:HashMap的底层原理面试必考题。一:HashMap的节点:HashMap是一个集合,键值对的集合,源码中每个节点用Node<K,V>表示static class Node<K,V> implements Map.Entry<K,V> {final int hash;f原创 2021-01-25 15:59:42 · 151 阅读 · 0 评论 -
Map 遍历Key - value 方法
package Com.oyee.study.gather;import org.junit.Test;import java.util.Collection;import java.util.Collections;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class MapTest {@Testpublic void Te原创 2021-01-25 10:36:05 · 804 阅读 · 0 评论 -
同步方法处理线程安全问题(二)
1、最大的改动之处就是: 新建了一个同步方法public synchronized void show(){ // 同步监视器是this源代码如下:package Com.bigDataWork_exer03;/** 例子:同步方法处理线程安全问题*/public class ThreadTest3 {public static void main(String[] args) {// 这个类在创建对象时我们要创子类对象window mThread = new win原创 2021-01-16 22:28:56 · 118 阅读 · 1 评论 -
同步代码块处理线程安全的问题(—)
1、常用的实现 implements Runnable 接口2、 在同步监视器中 使用 synchronized 来包住需要共享的数据逻辑。3、 任何一个对象度可以充当锁。以下代码可执行。。import com.sun.org.apache.xpath.internal.objects.XObject;import java.awt.;import java.util.concurrent.ThreadLocalRandom;/**创建多线程的方式二 : 实现 Runnabl.原创 2021-01-16 21:03:11 · 125 阅读 · 0 评论 -
抽象类和接口的区别 截图版记录
abstract 说明:抽象类和接口一起使用例子:public class interfaceTest {public static void main(String[] args) {plane plane = new plane();plane.Start();plane.Stop();plane.Fly();}}interface Flyable{// public final static 省滤int MAX_SPEED=79900;int MIN_SPEED=1原创 2021-01-10 15:42:09 · 163 阅读 · 1 评论 -
内部类讲解与认识【成员内部类VS 局部内部类】
文章目录:一、 内部类的分类:成员内部类的特点一方面作为外部类的成员:另一方面,作为一个类成员内部类VS 局部内部类 如何定义实战例子:二、 如何实例化成员内部类的对象例子演示结果输出三、例子一、 内部类的分类:成员内部类(静态、非静态) 局部内部类 (方法内、代码块内、构造器内)成员内部类的特点一方面作为外部类的成员:(1) 调用外部类的结构。(2) 可以被static 修饰(3) 可以被四种不同的权限修饰符修饰。另一方面,作为一个类(1) 类内可以定义属性、方法、构造器等、(2原创 2021-01-10 12:28:59 · 192 阅读 · 0 评论 -
领略一番 《interface 接口使用 与 Java8 接口中的新特性》的那些事
一、接口的概述:1、接口使用interface 来定义2、Java中接口和类是并列的两个结构。3、接口中不能定义构造器!意味着不可以实例化。。4、Java 开发中,接口通过让类去实现(implements)的方式来使用。(1)如果实现类覆盖了接口的所有抽象方法,则此实现类就可以实例化。(2)如果实现类没有覆盖接口中的所有方法,那此类仍然为抽象类。5、接口与接口之间可以多继承,6、接口之间多重继承,先写父类后写实现。7、接口的具体使用,体现多态性。8、接口,实际可以看作是一种规范。二、原创 2021-01-09 23:25:18 · 212 阅读 · 0 评论 -
温故而知新 <类中代码块结构的使用与理解>
文章目录:静态代码块:静态代码块作用:非静态代码块非静态代码块作用:二者之间执行顺序:备忘录:栗子: 静态代码块 :随着类的加载而执行里面的内容。 非静态代码块:随着对象的创建而执行里面的内容。静态代码块:内部可以有输出语句随着类的加载而执行,而且只执行一次。静态代码块作用:初始化类的信息如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行。静态代码块的执行要优先于非静态代码块的执行。静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构。非静态代码块1、内部可原创 2021-01-03 20:43:32 · 138 阅读 · 0 评论 -
Java 基础 面试题
1、static 修饰的属性,相较于实例变量,有哪些特别之处?随着类的加载而加载;早于对象的创建,只要权限通过,可以通过。对象static.属性的方式进行调用;存在于方法区的静态域。2、final可以用来修饰哪些结构,分别表示什么意思?1、1、final 可以用来修饰的结构:类、方法、变量2、final :用来修饰方法:表明此方法不可以被重写3、final:用来修饰一个类:此类不能被继承。如:String类、System类、、StringBuffer类、4、final:用来修饰常量如:fi原创 2021-01-03 18:58:57 · 261 阅读 · 0 评论 -
回顾== 运算符与 equlas 方法 的使用
一、== :运算符1、可以使用在基本数据类型变量和引用数据类型变量中。2、如何比较的基本数据类型变量:比较两个变量的数据是否相等。(不一定类型要相同)如果比较的是引用数据类型变量:比较两个对象的地址值是否相同,即两个引用对象是否指向同一个实体。equlas(): 方法1.是一个方法,而非运算符。2.只能适用于引用数据类型。结论: 基本数据类型的使用==比较,引用数据类型使用equlas()比较。equals () 括号内放入要比较的引用值得变量。编译器中可以 以自动生成equals 方法原创 2021-01-02 18:38:45 · 178 阅读 · 0 评论 -
温习:多态性的体现与理解
一、怎么理解多态?(1)子类重写了父类的方法,其实就是多态性的体现。(2)父类引用指向子类对象,或者子类赋值引用父类对象。格式: Person p = new student();(3) 编译看左边,运行看右边。(4)、多态性的体现:1、多态在属性方面不体现多态性。2、多态在方法方面体现多态性。1、向上转型就是多态性的体现2、向下转型就是instanceof进行判断(不常用)使用 方法: if(a ==instanceof b){System.out.println(); //原创 2021-01-02 17:26:01 · 459 阅读 · 2 评论 -
IDEA 工具中 如何生成有参和无参的构造方法
首先打开IDEA,然后在你需要生成构造方法的地方按下快捷键“Alt+shift+Insert”选择Constructor进入操作面板再见喽。。原创 2020-12-26 18:13:58 · 8624 阅读 · 3 评论 -
Java面向对象中的封装之 构造器的理解
一、 Java 构造器的作用:1、创建对象2、初始化对象的信息。二、说明:1、如果没有显示的定义类的构造器的话,则系统默认提供一个空参的构造器。2、定义构造器的格式:权限修饰符 类名(形参列表){ }3、一个类中定义多个构造器,就构成了方法的重载。4、一旦我们显示的定义了类的构造器之后,系统就不再默认的提供默认的空参构造器。5、一个类中,至少会有一个构造器。// 构造器public void setName(String n){ name=n;}public String g原创 2020-12-20 21:25:20 · 296 阅读 · 2 评论 -
匿名对象 与 方法的重载 OR 可变个数形参 与 值传递机制 使用与理解
文章目录: 一、匿名对象的 使用 二、方法的重载 使用1、方法的重载 (OverLoad)定义:2、 两同一 不同构成了方法的重载:3、判断方法是否是重载4、在通过对象调用方法时,如何确定某一个指定的方法。5、正确代码演示:正确代码演示二: 三、可变个数的形参1、可变个数形参的方法:2、具体使用:3、可变个数的形参概念:3.1 当调用可变个数形参的方法时,传入的值可以是:零个、一个或者多个。3.2 可变个数新参的方法与本类中方法名相同,形参不同的方法之间构成重载。3.3 可变个数新参的方法与本类中方法名相同原创 2020-12-13 20:57:22 · 489 阅读 · 0 评论 -
Comparable和 Comparator 区别
Comparable :一般用于在定义类的时候,实现该接口。注意重写方法:CompareTo优点:可以实现自定义类型的比较方式。缺点:排序方式比较固定。Comparator :一般用于定义某个比较器的同时进行实现该接口注意重写方法:compare优点:可根据不同需求,进行不同方式的排序。缺点:必须自己创建一个类来实现排序。...原创 2020-12-06 16:27:37 · 210 阅读 · 0 评论 -
【类、对象、方法】温故而知新
一、类和对象的使用1.创建类,设计类的成员。2.创建类的对象。3.通过"对象.属性”或“对象.方法”调用对象的结构。二、Java 形参注意事项:在定义形参时 以下代码是不可以编写的,注意点:形参只有在调用方法时进行赋值public int addAge(int i=2) {}例子:package Com.bigDataWork02;public class MyStudent {public static void main(String[] args) {//自定义 声明St原创 2020-11-29 20:19:04 · 196 阅读 · 0 评论 -
方法 与 形参实战性 加个人理解,以防忘记
文章目录:前言:Java 方法没有整明白,决定实战演戏。1、下面是例子源代码:定义的属性类:2、解释下定义方法这块的细节:1、权限修饰符有四种,我这里使用了:默认的,也是最大的权限public2、定义方法: 有返回值VS 没有返回值3、以下属于形参调用:4、Return 返回方法5、形参列表写于: 《上海.》 时间:2020-11-22天气“阴天”前言:Java 方法没有整明白,决定实战演戏。1、下面是例子源代码:package Com.bigDataWork02;public class S原创 2020-11-22 18:30:56 · 184 阅读 · 0 评论 -
IntelliJ IDEA怎么自动生成get/set方法
ALT +shift + insert .原创 2020-11-15 14:43:23 · 424 阅读 · 0 评论 -
Java 第36天 高级进阶篇 Java 对象流中的自定义类 (二).
一、Java 对象流中的自定义类实现序列化与反序列化操作1、首先在当前文件夹中创建要自定义类的文件夹.class 的 文件夹.2、提供属性3、无参、有参、get-set 方法、toString 方法4、在原来的代码之中下一行继续写入自定义类及数据。5、要想自定义类实现序列化机制必须实现:6、实现完成继续修改反序列化的代码:参考上一篇文章https://blog.youkuaiyun.com/weixin_46163590/article/details/109258868二、关于 SerialVer原创 2020-10-25 11:09:49 · 174 阅读 · 0 评论 -
Java 第35天 高级进阶篇 Java 对象流 (一).
本篇主要学习:处理流之对象流。文章目录:一、对象流分为:二、对象的序列化机制:1、对象的序列化机制允许把内存中的Java 对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其它程序获取了这种二进制流,就可以恢复成原来的Java 对象。2、序列化的好处在于可将任何实现了Serializable接口的对象转化为字节数据,使其在保存和传输对象时可被还原。3、序列化是RMI(Remote Method Inkove -远程方法调用)过程的参数和原创 2020-10-24 15:45:32 · 259 阅读 · 1 评论