![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javase基础
文章平均质量分 88
努力彪
但行好事,莫问前程
展开
-
Lambda表达式
目录背景Lambda表达式的语法函数式接口Lambda表达式的基本使用语法精简变量捕获Lambda在集合当中的使用Collection接口List接口Map接口总结背景Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。 Lambda 表达式(Lambda expression)可以看作是一个匿名函数,基于数学中的λ原创 2022-02-01 15:55:53 · 2703 阅读 · 1 评论 -
JAVA中的枚举
目录枚举的使用背景及定义使用switch语句常用方法示例1:values方法示例2:ordinal方法示例3:valueOf方法示例4:compareTo方法枚举优点缺点枚举和反射枚举是否可以通过反射,拿到实例对象呢?(面试考过)总结面试问题(单例模式学完后可以回顾)枚举的使用背景及定义枚举是在JDK1.5以后引入的。主要用途是:将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式public static int final RED = 1;public static int fin原创 2022-02-01 15:55:10 · 1354 阅读 · 1 评论 -
JAVA中的反射
目录定义用途(了解)反射基本信息反射相关的类(重要)Class类(反射机制的起源 )Class类中的相关方法(方法的使用方法在后边的示例当中)反射示例获得Class对象的`三种方式`代码示例反射的使用代码示例反射优点和缺点优点缺点重点总结定义Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到,那么我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射原创 2022-02-01 15:53:30 · 624 阅读 · 0 评论 -
java中的内部类
目录内部类分类实例内部类如何实例化内部类对象代码示例注意事项:静态内部类概念如何实例化对象匿名内部类代码示例匿名内部类的变量捕获内部类分类内部类分为四种:1:实例内部类:定义在类的内部的一个类2:静态内部类:定义在类的内部的一个类,但是由static来修饰的3:匿名内部类4:本地内部类:方法里面定义的类,没有意义,可以不看实例内部类如何实例化内部类对象方式:OuterClass.InnerClass innerClass2 = out.new InnerClass();外部类名.内部原创 2022-01-19 22:14:13 · 383 阅读 · 0 评论 -
一篇让你读懂java中的字符串(String)
目录创建字符串方式1方式2方式3三种方式的内存图方式1 方式2方式3总结理解池的概念回忆引用字符串判断相等判断字符串引用是否相等代码1代码2代码3代码4总结判断字符串内容是否相等变量与变量进行比较字符串常量与变量进行比较理解字符串不可变反射打破字符串不可变字符与字符串代码示例1:获取指定位置的字符代码示例2:将字符数组所有内容变为字符串进行输出代码示例3: 将字符数组部分内容变为字符串进行输出代码示例4: 字符串与字符数组的转换小练习:字符串的逆置字节与字符串代码示例1: 将整个字节数组转变为字符串代码示例原创 2021-09-01 20:11:39 · 1778 阅读 · 4 评论 -
java中的异常(带你全面了解异常)
1.Java的异常体系Java 内置了丰富的异常体系, 用来表示不同情况下的异常. 下图表示 Java 内置的异常类之间的继承关系:来看下图:编译时异常意味着如果不处理这个异常的话,编译时就不能通过,直接飘红运行时异常是运行的时候才发生的异常2.异常的核心思想异常的核心思想就是EAFP.EAFP:It'sEasiertoAskForgivenessthanPermission."事后获取原谅比事前获取许可更容易". 也就是先操作, 遇到问题再处理....原创 2021-07-22 19:15:47 · 561 阅读 · 0 评论 -
Clonable接口以及再次理解深拷贝与浅拷贝!!(面试常考)
目录Clonable接口Clonable接口结合深拷贝问题与浅拷贝问题Clonable接口在抽象类和接口的博客中,我们讲到了两个我们会常用到的接口,一个是Compareable接口,一个是Comperator接口,现在我们再来讲一个我们会经常用到的接口,也就是我们的Clonable接口.首先我们来思考一个问题:如何进行对象的拷贝?Object 类中存在一个 clone 方法, 调用这个方法可以创建一个对象的 "拷贝". 但是要想合法调用 clone 方法, 必须要先实现 Clonable 接口, 否原创 2021-10-01 21:03:32 · 256 阅读 · 0 评论 -
java中的抽象类与接口(面试常考,重要)!!
目录抽象类语法规则注意事项(重要,全部掌握)抽象类的作用接口语法规则注意事项提示类实现多个接口接口使用实例抽象类语法规则在多态关于形状的代码例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际工作, 主要的绘制图形都是由Shape 的各种子类的 draw 方法来完成的. 像这种没有实际工作的方法, 我们可以把它设计成一个 抽象方法(abstract method), 包含抽象方法的类我们称为 抽象类(abstract class).abstract class Shape原创 2021-09-29 16:51:38 · 776 阅读 · 0 评论 -
一篇带你掌握java中的多态!!
目录向上转型概念向上转型发生的时机(三种)直接赋值方法传参方法返回动态绑定(运行时绑定)(三级目录向上转型概念什么是向上转型,总的来说就是父类引用引用子类对象向上转型发生的时机(三种)那么什么时候会发生向上转型呢?我们来看,共有三种直接赋值1.class Animal { 2. public String name; 3. public Animal(String name) { 4. this.name = name; 5. } 6.原创 2021-09-27 20:13:00 · 207 阅读 · 1 评论 -
java中的继承
目录背景语法规则基本语法注意事项面试问题super关键字super关键字常见的三种用法用法1用法2super关键字的总结this和super关键字的对比四种访问权限(重要)默认权限protected权限更复杂的继承关系final关键字final关键字的三种用法用法1:final关键字修饰成员变量用法2:final关键字修饰类用法3:final关键字修饰方法背景代码中创建的类, 主要是为了抽象现实中的一些事物(包含属性和方法).有的时候客观事物之间就存在一些关联关系, 那么在表示成类和对象的时候也会存在原创 2021-09-25 21:12:23 · 104 阅读 · 0 评论 -
java中的包
目录包导入`系统包`中的类将类放到包中(自定义的包和类)操作步骤包的访问权限控制常见的系统包包包 (package) 是组织类的一种方式. 使用包的主要目的是保证类的唯一性.唯一性怎么证明呢?其实很简单:例如,在同一个包下,你在代码中写了一个 Test 类. 然后你的同事也可能写一个 Test 类. 如果出现两个同名的类, 就会冲突, 导致代码不能编译通过.因为这两个类在同一个包下.再来看一个情况:可以看到图中的两个类的名称虽然相同,但是并没有报错,原因是第一个TestDemo类的路径为com.原创 2021-09-25 17:17:36 · 308 阅读 · 2 评论 -
Java中的代码块
认识代码块1.1什么是代码块使用 {} 定义的一段代码.根据代码块定义的位置以及关键字,又可分为以下四种:普通代码块(了解即可,一般不会用) 构造块(实例代码块) 静态代码块 同步代码块(后续讲解多线程部分再谈)1.2普通代码块普通代码块:定义在方法中的代码块.public class Main{ public static void main(String[] args) { { //直接使用{}定义,普通方法块int原创 2021-01-16 18:39:01 · 164 阅读 · 2 评论 -
java中方法的细分(普通方法,静态方法,构造方法)
1.1普通方法方法通俗点来讲用于描述一个对象的行为.例如一个人可以有很多行为,吃饭睡觉打豆豆,而这些行为是由方法来实现的。行为也被称作方法或者函数.代码示例:class Person { public int age = 18; public String name = "张三"; public void show() { System.out.println("我叫" + name + ", 今年" + age + "岁"); }}原创 2021-01-16 18:33:32 · 2200 阅读 · 1 评论 -
java之成员变量(实例成员变量和静态成员变量)
类的成员类的成员可以包含以下:字段、方法、代码块、内部类和接口等。此处我们重点介绍字段.1.1字段/属性/成员变量在类中, 但是方法外部定义的变量. 这样的变量我们称为"字段"或"属性"或"成员变量"(三种称呼都可以, 一般不会严格区分).在java中,成员变量分为两种:实例成员变量和静态成员变量。1.1.1实例成员变量实例成员变量:是定义在方法外部和类内部的且不被static所修饰的变量.用于描述一个类中包含哪些数据代码示例:class Person { ...原创 2021-01-16 12:44:45 · 14347 阅读 · 0 评论 -
java中局部变量与成员变量的区别
局部变量和成员变量的区别:1.定义的位置不一样【重点】局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中2.作用范围不一样【重点】局部变量:只有方法当中才可以使用,出了方法就不能再用了 成员变量:整个类都可以通用3.默认值不一样【重点】局部变量:没有默认值,如果要想使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样4.内存的位置不一样(了解)局部变量:位于栈内存 实例成员变量:位于堆内存 静态成员变量:位于方法区5.生命周期不一样(了原创 2021-01-11 21:27:16 · 146 阅读 · 0 评论 -
java之类和对象
思考此语句最终的输出结果:Person为类,@为分隔符,4554617c为对象地址的哈希值,那么为什么最终的输出结果为这个呢?我们来看下源码便一清二楚了1首先来看println处的源码:Object类为所有类的父类,valeOf方法是将引用x转化为字符串,那么是如何转化的呢?我们接着看valeOf的源码:此处判断这个引用是否为空,若为空,则返回null,若不为空,则返回这个引用所调用的toString方法的返回值,那么我们再来看toString方法的源码吧:我们可以看..原创 2021-01-08 15:25:54 · 268 阅读 · 0 评论 -
Arrays.copyOf()与System.arraycopy()的区别
利用copyof方法进行拷贝代码示例: //定义一个数组array3 int[] array = {1, 2, 3, 4, 5, 6}; //copyOf方法是用来拷贝数组的一种方法,括号中放入的分别为引用和想要拷贝多长的数组的长度值 int[] array2 = Arrays.copyOf(array, 10); //输出结果为[1, 2, 3, 4, 5, 6] System.out.println(原创 2021-01-05 23:09:39 · 487 阅读 · 0 评论 -
java之数组的定义和使用(附加练习题)
此处要注意一个问题:引用是不是一定都在栈上呢?答:引用不一定都在栈上的,之所以在栈上是因为其是一个局部变量,若是一个全局变量的话则未必在栈上,但是对象一定在堆上原创 2020-12-20 02:14:16 · 1938 阅读 · 1 评论 -
java之方法的使用
方法的使用 1. 方法的基本用法 1.1 什么是方法(method) 方法就是一个代码片段. 类似于C 语言中的"函数". 方法存在的意义(不要背, 重在体会): 1. 是能够模块化的组织代码(当代码规模比较复杂的时候). 2. 做到代码被重复使用, 一份代码可以在多个位置使用. 3. 让代码更好理解更简单. 4. 直接调用现有方法开发, 不必重复造轮子. 回忆一个之前写过的代码: 计算1! + 2! + 3! + 4! + 5! int sum = 0;...原创 2020-12-19 01:58:36 · 675 阅读 · 1 评论 -
java之循环与选择结构
逻辑控制 1. 顺序结构 顺序结构比较简单. 像我们之前写过的代码就是顺序结构的, 按照代码书写的顺序一行一行执行.System.out.println("aaa");//运行结果aaaSystem.out.println("bbb");//运行结果bbb System.out.println("ccc");//运行结果ccc 如果调整代码的书写顺序, 则执行顺序也发生变化 System.out.println("aaa");// 运行结果aaa System.out.原创 2020-12-18 20:27:17 · 147 阅读 · 1 评论 -
java运算符
1.1算术运算符基本四则运算符 + - * / %规则比较简单, 值得注意的是除法: a) int / int 结果还是int, 需要使用double 来计算. int a = 1; int b = 2; System.out.println(a / b); //结果为0b) 0 不能作为除数int a = 1; int b = 0; System.out.println(a / b) // 运行结果 Exception in thread "ma...原创 2020-12-17 22:01:08 · 178 阅读 · 0 评论 -
java数据类型(干货满满!!)
1.变量和类型变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据. 类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性我们所讨论的 "变量" 主要和我们的 "内存" 这样的硬件设备密切相关输入设备 :键盘,文件输出设备:屏幕,文件内存储器:内存(RAM)外存储器:硬盘,u盘,磁盘,光盘运算器+控制器=cpu1.1整型变量(重点)基本语法格式int 变量名=初始值;代码示例:int num = 10; /...原创 2020-12-15 22:58:43 · 577 阅读 · 0 评论 -
初识java的main方法
main方法实例public class TestDemo{ public static void main(String[] args){ System.out.println("Hello,Java"); System.out.println("My name is:"+args[0]); }}注意:1:类名一定是大驼峰类型,即像TestDemo这样的命名。 2:类名一定要跟文件名相同 ,前提是这个类一定是一个public类 ...原创 2020-12-14 16:37:50 · 140 阅读 · 0 评论