![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java笔记
Java基础笔记
Gypsophyla
这个作者很懒,什么都没留下…
展开
-
springboot实现简单的文件上传与回显
前端页面input的file类型可以将上传文件的绝对路径返回给后台。<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script原创 2020-11-18 10:21:05 · 660 阅读 · 0 评论 -
多线程基础与JUC进阶笔记
文章目录1.实现线程的几种方式1.1.继承Thread类1.2.实现Runnable接口1.3.实现Callable接口2.Lambda表达式3.静态代理模式4.synchronized锁5.死锁6.Lock锁7.synchronized与Lock区别8.线程池9.线程状态10. wait和sleep的区别11.生产者与消费者问题12.什么是JUC13.JUC版的生产者与消费者问题14.8锁问题15.集合的安全问题15.1.List不安全15.2.Set不安全15.3.map不安全16.Callable17原创 2020-10-17 15:40:57 · 266 阅读 · 0 评论 -
JVM面试速记
文章目录1.jvm位置2.jvm体系结构3.类加载器4.双亲委派机制6.Native7.PC寄存器8.方法区9.栈10.三种JVM11.堆12.新生区,老年区13.永久区14.堆内存调优15.GC-垃圾回收机制1.jvm位置2.jvm体系结构3.类加载器虚拟机自带的加载器启动类(根)加载器 —底层是c写的,java调用不到,返回null扩展类加载器应用程序加载器4.双亲委派机制类加载器在接收到类的请求后,会将任务委托给父类加载器,父类加载器再委托给上一级的加载器,直到根加载器,如原创 2020-10-13 18:36:14 · 197 阅读 · 0 评论 -
(Java)注解和反射
文章目录注解和反射一.注解1.1元注解1.2内置注解1.3自定义注解二.反射2.1什么是反射2.2Class类2.3创建Class类的方式2.4所有类型的Class注解和反射一.注解可以被程序识别的注释可以对程序作出解释1.1元注解import java.lang.annotation.*;//测试原注解@MyAnnotationpublic class Test01 { public void test() { }}//定义一个注解//Target 表原创 2020-06-20 18:18:13 · 143 阅读 · 0 评论 -
(Java)IO流
文章目录字节流一切皆为字节字节输出流【OutputStream】FileOutputStream类构造方法写出字节数据代码演示数据追加续写写出换行代码演示字节流一切皆为字节一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。字节输出流【OutputStream】java.io.OutputStream抽象类是表示字节输出流的原创 2020-05-23 17:36:16 · 200 阅读 · 0 评论 -
(Java)ArrayList集合
ArrayList集合概述和基本使用ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类.数组的长度不可以发生改变,但是ArrayList的长度是可以随时变化的对于ArrayList来说,有一对尖括号代表泛型,泛型,也就是装在集合中的所有元素,全都是统一的给定的类型。注意:泛型只能是引用类型,不能是基本类型。代码演示import java.util.ArrayList;public class Demo01ArrayList { public sta原创 2020-05-22 18:28:03 · 219 阅读 · 0 评论 -
(Java常用类)日期时间类
2.1 Date类概述java.util.Date类 表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。public Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。原创 2020-05-20 22:20:58 · 214 阅读 · 0 评论 -
(Java常用类)Object类
文章目录Object类toString方法方法摘要覆盖重写代码演示equals方法方法摘要默认地址比较对象内容比较代码演示Objects类代码演示Object类类 Object是类层次结构的根(夫)类。每个类(Person,Student…)都使用Object作为超类(父类)。所有对象(包括数组)都实现这个类的方法toString方法方法摘要public String toString():返回该对象的字符串表示。toString方法返回该对象的字符串表示,其实该字符串内容就是对象的原创 2020-05-19 17:37:48 · 184 阅读 · 0 评论 -
(JAVA学习笔记) 异常处理
文章目录什么是异常异常分类异常体系结构ErrorExceptionError和Exception的区别:异常处理机制代码演示自定义异常代码演示什么是异常异常指程序运行中出现的不期而至的各种情况,如:文件找不到,网络连接失败,非法参数等。异常发生在程序运行期间,它影响了正常程序执行流程。异常分类要理解Java异常处理是如何工作的,需要掌握以下三种类型的异常:检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在的文件时,一个异常就发生了,这些原创 2020-05-16 16:42:53 · 257 阅读 · 0 评论 -
(JAVA学习笔记) 接口
定义:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口就是规范,定义的是一组规则,体现了现实世界中“如果你是,就必须能…”的思想。如果你是汽车,就必须能跑。如果你是手机,那你必须能打电话。接口的本质是契约,就像法律一样。制定之后大家必须遵守。面向对象的精髓就在于接口。设计模式所研究的,实际上就是如何合理的去抽象。接口的使用://inrerface 定义关键字,接口原创 2020-05-15 19:47:31 · 172 阅读 · 0 评论 -
(JAVA学习笔记) static关键字详解
静态方法,静态变量//staticpublic class Studnet { private static int age; //静态的变量 可以直接调用 private double score;//非静态的变量 不能直接调用 public void run(){ //非静态的方法,不能直接调用 } public static void go(){ //静态的方法,可以直接调用 } public static原创 2020-05-15 16:53:57 · 172 阅读 · 0 评论 -
(JAVA学习笔记) 类的继承,super,方法的重写,多态
类的继承继承的本质是对某一批类的抽象,从而实现对世界更好的建模extends的意思是“扩展”。子类是父类的扩展JAVA中类只有单继承,没有多继承!(一个儿子只有一个爸爸,但爸爸可以有多个儿子)继承是类和类之间的一种关系。除此之外,类和类的关系还有依赖,组合,聚合等。继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示子类和父类之间,从意义上讲应该具有“is a”的关系代码演示:父类Person://Person 人:父类//在jav原创 2020-05-11 20:41:37 · 354 阅读 · 0 评论 -
(JAVA学习笔记) 关于类的封装
封装该露的露,该藏的藏我们程序设计要追求高内聚,低耦合。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合就是仅暴露少量的方法 给外部使用。封装(数据的隐藏)通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。总之,记住一句话:属性私有,get/set。封装的好处提高程序的安全性,保护数据。隐藏代码的实现细节。统一接口(set/get)。增加系统的可维护性。代码演示Student类:public class Student原创 2020-05-08 22:07:48 · 158 阅读 · 0 评论 -
(JAVA学习笔记) 类与对象小结
1.类与对象类是一个抽象的模板;对象是类的一个具体的实例;2.方法方法的定义:修饰符,返回类型,方法名,参数列表,异常抛出,返回值。方法的调用:静态方法,非静态方法,形参和实参,值传递和引用传递,this关键字。public class Demo01 { public static void main(String[] args) throws Exception { ...原创 2020-05-07 22:11:34 · 173 阅读 · 0 评论 -
(JAVA学习笔记) 关于稀疏数组
稀疏数组介绍当一个数组中大部分的元素为0,或者同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:1.记录数组一共有几行几列,有多少个不同的值2.把具有不同值的元素的行列及值记录在一个小规模的数组中从而缩小程序的规模下面给出一个数组:0 0 0 0 0 0 00 0 1 0 0 0 00 0 0 2 0...原创 2020-05-05 22:12:28 · 278 阅读 · 0 评论 -
(JAVA学习笔记) 冒泡排序算法
public class Demo06 { public static void main(String[] args) { int[] arr = {51,512,12,53,415,852,631,842,12,1,2,4,8}; //进行排序 sort(arr); //输出数组 System.out....原创 2020-05-04 22:55:39 · 156 阅读 · 0 评论 -
用java实现计算器加减乘除功能,并能够循环接收新的数据,通过用户交互实现
import java.lang.invoke.SwitchPoint;import java.util.Scanner;public class TestDemo { public static void main(String[] args) { while (true) { System.out.println("输入计算类型(+,-,*...原创 2020-05-04 16:16:47 · 963 阅读 · 0 评论 -
(JAVA学习笔记) 关于方法的递归-阶乘方法演示
递归就是在A方法中调用A方法,自己调用自己利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型的复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。递归结构包括两个部分:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归体:什么...原创 2020-05-04 15:48:52 · 179 阅读 · 0 评论 -
(JAVA学习笔记) Scanner类中next方法和nextline方法的区别
next():1.一定要读取到有效字符后才可以结束输入。2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。3.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符。4.next()方法不能得到带有空格的字符串。nextline():1.以Enter为结束符,也就是说,nextline()方法返回的是输入回车之前的所有字符。2.可以获得空白用next方法接收数据...原创 2020-05-01 23:13:22 · 168 阅读 · 0 评论 -
(JAVA学习笔记) 如何计算2*8效率高(面试题)—— 左移和右移问题。
左移和右移问题在面试中经常会有面试官问如何计算(2×8)效率高。这里的效率肯定是指计算机运算的效率,平常进行计算时直接在代码中写2*8就可以直接得出结果,但是对于计算机而言是无法直接识别的,看似结果出来的很快,但实际上计算机是经历相当多的繁琐的过程转换才最终得出结果的。那么如何让计算机更有效率的进行计算2×8呢?这里就涉及到了位运算中的左移<<和右移>>的问题。直接...原创 2020-04-30 19:37:59 · 699 阅读 · 0 评论 -
(JAVA学习笔记) 关于i++和++i的区别
关于i++和++i的区别首先看下面一串代码: int i=0; int a = i++; System.out.println("a="+a); System.out.println("i="+i); System.out.println("=============分割线==============="); i...原创 2020-04-29 22:29:49 · 167 阅读 · 0 评论 -
(JAVA学习笔记) 关于数据类型的一些扩展-面试时经常问到的问题
JAVA数据类型的一些扩展一.整数类型扩展整数各种进制表示方法://整数扩展 十进制 二进制0b 八进制0 十六进制0x int i = 1; int i1 = 0b10; int i2 = 010; int i3 = 0x10; System.out.println(i); System.ou...原创 2020-04-28 20:49:11 · 123 阅读 · 0 评论 -
(Java多线程)线程安全问题
文章目录线程安全定义售票模拟案例注意线程同步同步代码块同步方法Lock锁线程安全定义如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他变量的值也和预期的是一样的,就是线程安全的。售票模拟案例电影院要卖票,假设本次电影的电影票共100张。模拟电影院的售票窗口,实现多个售票窗口同时出售电影票(多个窗口一起卖这100张电影票)窗口采用线程对象模拟,票采用Runnable接口模拟模拟票public class Ticket im原创 2020-06-08 21:38:31 · 262 阅读 · 0 评论 -
(Java多线程)多线程原理和使用
并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。而在多个 CPU 系统中,则这些可以并发执行的程序便可以分配到多个处理器上(CPU),实现多任务并行执行,即利用每个处理器来处理一个可以并发执行的程序,这样多个程原创 2020-06-07 20:38:55 · 436 阅读 · 0 评论 -
(Java集合框架)Map集合
Map集合概述现实生活中,常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键原创 2020-06-05 22:31:24 · 392 阅读 · 0 评论 -
(Java集合框架)List接口
List接口介绍java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。List接口特点:它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。它原创 2020-06-04 23:05:17 · 196 阅读 · 0 评论 -
(Java)关于泛型
泛型泛型概述合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。观察下面代码:public class GenericDemo { public static void main(String[] args) { Collection coll = new ArrayList(); coll.add("abc"); coll.add("itcast"); coll.add(5);原创 2020-06-02 23:03:43 · 239 阅读 · 0 评论