![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 75
java基础知识
巴啦啦小刺猬
这个作者很懒,什么都没留下…
展开
-
019JDK1.8新特性(java基础)
目录1、Lambda表达式2、Stream API3、Optional类 4、双冒号“::”5、接口default 关键字6、函数式接口(接口只含一个抽象方法) 7、时间和日期API8、HashMap性能提升9、IO流新增APIJava 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本。比较受重视的就是下面这些新特性,实际上还有js升级,注解升级等,不过主要关注这几些常用的新特性就够用了,尤其是lambda表达式和Stream API基于很多代码是有一定规律的,而且原创 2022-06-09 17:57:40 · 406 阅读 · 0 评论 -
018线程(java基础)
目录一、程序,进程,线程二、创建线程1、继承Thread类2、实现Runnable接口3、实现Callable接口4、线程池5、Springboot中使用线程池三、线程的生命周期 1、介绍五种状态2、五种状态之间的转换一个进程可以由多个线程组成,至少得包含一个线程当进程内的多个线程同时运行,这种运行方式称为并发运行有四种方式2、实现Runnable接口 实现Runnable接口 重写run方法 需要借助Thread类 将对象作为Thread构造方法的参数,调用start原创 2022-06-08 16:23:20 · 106 阅读 · 0 评论 -
017反射(java基础)
目录1、介绍反射2、常用的方法介绍3、使用反射4、动态代理反射就是把java类中的各种成分映射成一个个的Java对象在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制(1)获取class对象有三种方式(2)生成实例对象有两种方式第一种方式只支持无参构造,第二种方式允许有但是要注意,第二种方式,getConstructor方法要声明参数类型和个数,newInstance要传原创 2022-06-08 13:08:20 · 66 阅读 · 0 评论 -
016JVM(java基础)
目录一、介绍JVM二、内存分区三、垃圾回收机制(GC)1、GC介绍2、垃圾介绍3、垃圾判断算法(标记)(1)引用计数法(2)可达性分析法4、垃圾回收算法(回收)(1)标记-清除算法(2)标记-整理算法(3)分代收集算法(jdk1.8默认)四、类加载过程1、加载(1)类加载器(2)什么时候触发类加载2、验证3、准备4、解析5、初始化即java虚拟机(Java Virtual Machine)是一种抽象化的计算机,java可以跨平台运行最主要的原因就是因为有java虚拟机有栈、堆、方法区、PC寄存器存储的是线程原创 2022-06-07 15:37:38 · 87 阅读 · 0 评论 -
015Object类(java基础)
目录1、介绍Object类2.native关键字3、hashCode()方法 4、equals()方法5、clone()方法、深克隆浅克隆6、toString()方法7、notify()、notifyAll() 和 wait()8、finalize()方法9、getClass()方法Object是所有类的顶级父类,属于java.lang包看源码的时候发现,Object类的很多方法,被native关键字修饰了native关键字主要用于方法上 返回对象的hashcode,主要是为了一些哈希表的数据结原创 2022-06-07 13:56:57 · 87 阅读 · 0 评论 -
014枚举(java基础)
目录1、枚举的定义2、声明枚举3、常用的方法1、枚举的定义枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型枚举可以跟switch配合使用输出......原创 2022-06-06 16:35:59 · 54 阅读 · 0 评论 -
013IO流(java基础)
目录一、IO流介绍二、File1、介绍一下File类:java.io.File2、构造器:3、路径分隔符4、常用方法三、流的分类四、流的使用1、使用步骤2、使用说明3、使用示例因为不同的平台可能使用的路径分隔符不同,有用“\\”“、”\“”或者"/"的,为了解决跨平台的问题,java提供了File.seperator常量,能自动根据操作系统,动态使用不同的分隔符4、常用方法 public String getAbsolutePath():获取绝对路径 public boolean isDire原创 2022-06-06 13:20:07 · 105 阅读 · 0 评论 -
012排序查找算法(java基础)
目录一、排序算法1、冒泡排序2、快速排序3、插入排序4、选择排序二、查找算法1、顺序查找2、二分查找讲一些简单的排序和查找算法,等有空了再加一点一种简交换排序算法,以升序排序为例:如果在外层循环还没结束的时候,就已经排好序了,那其实整个程序就可以停止了,我们可以增加一个标志位记录,如果在某一轮外层循环执行时,所有数据都没有做位置交换,则终止排序比如说int a[] = { 2, 3, 0, 5, 6, 7, 8 };第一次排完为{2,0,3,5,6,7,8}第二次排完为{0,2,3,5,6,7,8}所原创 2022-06-06 09:30:28 · 184 阅读 · 0 评论 -
011集合(java基础)
目录一、集合框架图二、Set1、HashSet2、LinkedHashSet3、TreeSet三、List1、ArrayList2、LinkedList3、Vector四、Map1、HashMap(1)put()的实现原理(2)get()的实现原理(3)红黑树2、LinkedHashMap(有序)3、HashTable(线程安全&键值都不能null)4、TreeMap(有序)5、ConcurrentHashMap五、总结.原创 2022-06-02 16:10:29 · 97 阅读 · 0 评论 -
010循环和判断(java基础)
一、三种判断1、if 判断if判断有三种结构形式(1)ifif(关系表达式:布尔值) {语句体;}(2)if...elseif(关系表达式:布尔){语句体1;} else {语句体2;}(3)if...else if(可以有多个)...elseif(关系表达式1:布尔值){语句体1;}else if(关系表达式2:布尔值){语句体2;}.........原创 2022-05-25 19:54:04 · 115 阅读 · 0 评论 -
009数组(java基础)
目录一、介绍数组二、初始化的三种方式1、定义一维数组的三种方式(1)动态初始化(2)静态初始化(3)静态初始化的简化方式--直接赋值法2、定义二维数组二维数组三、数组元素的默认值四、数组元素的访问1、索引2、访问格式3、数组长度4、遍历数组(1)普通for循环(2)增强for循环(3)Arrays工具类toString(数组名)(4)Arrays.deepToString(多维数组名)五、数组长度不可变一、介绍数组一组相关变量的原创 2022-05-23 22:42:41 · 136 阅读 · 0 评论 -
008值传递和引用传递(java基础)
1、介绍值传递和引用传递引用传递(pass by reference)是指在调用方法时将实际参数的地址直接传递到方法中,那么在方法中对参数所进行的修改,将影响到实际参数。 值传递(pass by value)是指在调用方法时将实际参数拷贝一份传递到方法中,这样在方法中如果对参数进行修改,将不会影响到实际参数。2、java是值传递还是引用传递?Java是值传递当传的是基本数据类型时,传的是值的拷贝,对拷贝变量的修改不影响原变量 当传的是引用类型时,传的是引用地址的拷贝,但是拷贝的地址和真实地原创 2022-05-23 21:02:41 · 107 阅读 · 0 评论 -
007异常机制(java基础)
一、java异常机制介绍和Throwable类先看下面这张体系图,所有的异常都继承自Throwable类,主要有两个子类Error和Exception二、Error是程序无法处理的错误,表示运行应用程序中较严重问题,这种严重问题无法捕获三、ExceptionException 是是程序本身可以处理的异常,主要分为两类编异异常:检查型异常(IOException、SQLException、自定义异常) 运行时异常:非检查型异常(RuntimeException)1、编译异常原创 2022-05-22 16:25:17 · 157 阅读 · 0 评论 -
006抽象类和接口(java基础)
目录1、抽象类2、接口3、接口和抽象类的区别1、抽象类简言之,就是用abstract修饰的类抽象类规定:抽象类必须用public或procted 修饰(如果为private修饰,那么子类则无法继承,也就无法实现其抽象方法)。默认缺省为 public。 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。 抽象类中可以包含非抽象方法,但是有抽象方法的类必定是抽象类。 抽象类中的抽象方法只是声明原创 2022-05-22 13:24:33 · 70 阅读 · 0 评论 -
005栈、堆、方法区、常量池(java基础)
栈(局部变量和对象的引用):基本数据类型的变量数据/局部变量(例如int a=3中的a)(形参是局部变量)对象的引用(例如Thread t=new Thread();中的t)堆(new出来的对象)(垃圾回收器回收):new出来的对象成员变量方法区(共享的唯一元素):跟堆一样,被所有的线程共享。方法区中包含的都是在整个程序中永远唯一的元素,eg:class,static变量。常量池:字符串常量基本类型常量(public static final)字符串对象存哪儿原创 2022-05-21 10:23:46 · 222 阅读 · 0 评论 -
004变量、数据类型、运算符(java基础)
一、变量的定义和作用域定义格式:数据类型 变量名作用域:一对{ }之间有效注:使用前需要初始化值二、数据类型分为引用数据类型和基本数据类型引用数据类型 类(包括字符串String) 接口 数组 类型 符号 所占字节 数据范围 基本数据类型(8种) 数值型 整数 byte 1 -128~127(-2^7~2^7-1) short 2 -2^15~2^15-1 int ...原创 2022-05-20 16:21:49 · 144 阅读 · 0 评论 -
003修饰符(java基础)
一、修饰符介绍修饰符主要有两大作用,一是控制访问权限,二是实现一些其他的功能而访问类修饰符可分为:类修饰符、方法修饰符、变量修饰符二、访问控制修饰符有四类:public、protected、无修饰符、private可以修饰类、变量、方法和构造方法(注:private和protected不能修饰接口和类,内部类除外)修饰符 当前类 同包 子类(不同包) 其他包 public √ √ √ √ protected √ ..原创 2022-05-19 15:32:16 · 143 阅读 · 0 评论 -
002多态(java基础)
目录1、多态介绍2、编译时多态和运行时多态3、实现多态的三个重要条件4、多态的实现方式5、示例代码1、多态介绍多态是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。2、编译时多态和运行时多态编译时多态是静态的,主要是指方法的重载(overload),它是根据参数列表的不同来区分不同的方法,通过编译之后会原创 2022-05-19 14:29:42 · 101 阅读 · 0 评论 -
001面向对象(java基础)
1、面向过程与面向对象区别面向过程:按需求所需要的步骤实现并调用,强调的是功能的行为面向对象:将一类事务的共同特征抽象出来,包括数据抽象和行为抽象两方面,强调的是对象c属于面向过程的语言,c++和java是面向对象的语言2、面向对象的三大基本特征封装:隐藏不必要的属性和细节,要访问,必须通过已定义的方法 继承:从已有类,得到继承信息(包括属性和方法)的行为 多态:同样的对象引用调用同样的方法但是做了不同的事情(1)封装对外界隐藏细节,(2)继承子类拥有父类非 priva原创 2022-05-18 16:27:32 · 106 阅读 · 0 评论 -
JDK安装配置教程
目录一、首先介绍一下jdk二、下载安装JDK三、配置JDK四、测试有没有安装配置成功一、首先介绍一下jdkJRE(Java Runtime Envirnment):Java运行环境包括JVM(Java虚拟机)和Java程序所需的核心类库等,所以如果只是要运行一个java程序,就只需要安装jre即可JDK(Java Development Kit):Java语言的软件开发工具包jdk包含了java开发工具,也包含了JRE,所以作为开发人员,我们就需要安装jdk二..原创 2022-05-17 13:45:32 · 25869 阅读 · 2 评论