
Java基础
Java基础知识笔记,本专栏内容整理而成,主要作为个人笔记。
行百里者半九九
一名佛系程序员~
展开
-
Java多线程:创建线程的方法及对比
Java多线程——创建线程的三种方式1、Java中创建线程的方式2、继承Thread类的方式创建线程类2.1 通过继承Thread类创建、使用线程方式的流程2.2 一个简单示例如下:3、实现Runnable接口创建线程类3.1 通过继承Thread类创建、使用线程方式的流程3.2 一个简单示例代码如下:4、通过Callabe和Future创建线程4.1、创建、使用线程的流程:4.2、一个简单示例如下:5、创建线程的三种方式的对比5.1 采用实现Runnable原创 2020-08-06 10:34:35 · 491 阅读 · 0 评论 -
List列表和int[]数组互转的方法汇总
1、写在前面在日常Java学习或项目开发中,经常会遇到需要int[]数组和List列表相互转换的场景,然而,往往一时难以想到有哪些方法,最后可能会使用暴力逐个转换法,往往不是我们所满意的。本文小结了一下常用的集中List和int[]互换的方法。2、int[]数组转List的方法3、List转int[]数组的方法...原创 2020-08-06 09:24:30 · 29486 阅读 · 1 评论 -
设计模式(6):代理模式及Java中的代理模式实现方式
代理模式1、什么是代理模式2、代理模式的特性3、代理模式的优缺点及其应用场景4、代理模式的三种实现方式4.1 静态代理4.2 动态代理4.2.1 JDK动态代理4.2.2 Cglib动态代理4.3 总结5、代理模式的典型应用示例1、什么是代理模式代理模式:给某一个对象提供一个代理,并由代理对象控制对原对象的访问引用。它是一种对象结构型模式。在代理模式中,一个类代表另一个类的功能,我们创建具有现有对象的对象,以便向外界提供功能接口。生活中就有代理模式的例子.原创 2020-08-04 16:29:19 · 454 阅读 · 0 评论 -
(二十二)Java11 新特性概述
1、关于JDK11JDK11是由Java Community Process中的JSR-384指定的 Java SE 平台版本 11 的开源引用实现。JDK11于2018年9月25日发布。在 GPL 下可用于生产的二进制文件可以从 Oracle 官方获得;此版本的特性和时间表是通过 JEP 流程提出并跟踪的,JEP 2.0提案对其进行了修订。该版本使用 JDK Release Process(JEP 3)生成的。2、JDK11的17项新特性181:Nest-Based Access ..转载 2020-05-23 21:52:04 · 302 阅读 · 0 评论 -
(二十一)Java 8新特性
相比之前,Java8新增了很多特性,如下图所示的Java8新增特性的总结:1 Java语言新特性1.1 Lambda表达式Lambda表达式(也称为闭包)是整个Java 8发行版中最受期待的在Java语言层面上的改变,Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中),或者把代码看成数据:函数式程序员对这一概念非常熟悉。在JVM平台上的很多语言(Groovy,Sc...原创 2020-05-03 22:04:07 · 262 阅读 · 0 评论 -
(二十)Java CMD
本文目录1 Java IDE的常见实现问题原理1.1 源码保存1.2 编译java文件为class文件1.3 查找class1.4 生成/调用对象2 javac 命令2.1 classpath是什么?2.2 IDE中的classpath2.3 Javac命令介绍2.4 使用javac构建项目3 Javap命令总结1 Java IDE的常见...原创 2020-05-03 12:41:33 · 362 阅读 · 0 评论 -
(十九)Java集合类
本文目录1、Java集合类简述2、Collection接口3、List接口3.1 ArrayList3.2 LinkedList3.3 Vector3.4 Stack4、Set接口4.1 EnumSet4.2 HashSet5、Map接口5.1、HashMap5.2、TreeMap5.3、HashTable6、Queue队列2 Jav...原创 2020-05-03 10:59:14 · 736 阅读 · 0 评论 -
(1)多线程相关面试题目
本文目录1、多线程有什么用?2、创建线程的方式3、start()方法和run()方法的区别4、Runnable接口和Callable接口的区别5、CyclicBarrier和CountDownLatch的区别6、volatile关键字的作用7、什么是线程安全8、Java中如何获取到线程dump文件9、一个线程如果出现了运行时异常会怎么样10、如何在两个线程之...原创 2020-05-02 23:56:55 · 189 阅读 · 0 评论 -
(十八)Java多线程
本文目录1 Java中的多线程1.1 Java线程的定义1.2 Java进程和线程的区别2 Java中的线程生命周期3 Java 线程常用方法3.1 Thread类的常用方法3.1.1 Thread#yield():3.1.2 Thread.interrupt():3.1.3 Thread#interrupted(),返回true或者false:3.1.4 ...原创 2020-05-02 23:41:09 · 535 阅读 · 0 评论 -
(十七)Java IO流
1、Java命令行原创 2020-05-02 22:57:01 · 220 阅读 · 0 评论 -
(十六)Java序列化与反序列化
本文目录:1 Java序列化与反序列化介绍1.1 序列化与反序列化简介1.2 相关接口、类及使用1.3 序列化ID1.4 静态变量不参与序列化2 ArrayList的序列化2.1 ArrayList的序列化2.2writeObject和readObject方法3 序列化与反序列化策略4 序列化接口Serializable5 知识点总结1 Ja...原创 2020-05-02 08:42:49 · 217 阅读 · 0 评论 -
(十五)Java注解
本文目录1、Java注解概述1.1 注解简介1.2 注解的作用2、Java注解的原理2.1 元注解2.2 JDK里的注解3、注解实例4、不同类型的注解4.1 类注解4.2 方法注解4.3 参数注解4.4 变量注解5、Java注解相关题目1、Java注解概述1.1 注解简介Annontation是Java5开始引入的新特征,中文名称叫注...原创 2020-05-01 23:21:29 · 272 阅读 · 0 评论 -
(十四)Java异常机制
本文目录1、Java异常1.1 Java异常的定义1.2 Java异常体系1.3 使用异常的原因1.4 异常追踪栈1.5 异常和错误1.6 异常的处理方式1.7 throws1.8 finally1.9 throw2、Java异常调用链2.1、异常的链化2.2 自定义异常2.3 异常的注意事项4、异常相关题目1、Java异常1....原创 2020-05-01 21:52:03 · 356 阅读 · 0 评论 -
(十三)Java回调机制
1、Java模块间的调用2、Java多线程中的回调3、Java回调机制实例原创 2020-05-01 19:40:00 · 332 阅读 · 0 评论 -
(十二)Java反射
本文目录1、Java反射介绍1.1、反射简介1.2、反射基础:1.3、反射用途1.4、为什么要使用反射2、Java反射的使用2.1、反射的基本使用2.1.1 获取Class对象2.1.2 判断是否为某个类的实例2.1.3 创建实例2.1.4 获取方法2.1.5 获取构造器信息2.1.6 获取类的成员变量信息2.1.7调用方法2.2、利...原创 2020-05-01 14:09:59 · 553 阅读 · 0 评论 -
(十一)Java泛型
本文目录1、泛型概述2、泛型特性3、泛型的使用3.1、泛型类3.2、泛型接口3.3、泛型通配符3.4、泛型方法3.4.1、泛型方法的定义3.4.2、泛型方法的基本用法3.4.3 类中的泛型方法3.5、泛型方法与可变参数3.6、泛型与静态方法3.7、泛型方法总结4、泛型边界问题5、泛型面试题?1、泛型概述泛型,即“参数化类型”。一...原创 2020-05-01 12:36:36 · 173 阅读 · 0 评论 -
(十)Java内部类
本文目录:1、内部类的介绍1.1、什么是内部类2、内部类的特点2.1、内部类的特性2.2、使用内部类的好处2.2.1 静态内部类的作用2.2.2 非静态内部类的作用2.3静态内部类与普通内部类的区别2.4普通内部类不能有静态变量的原因2.5 非静态内部类的一大优点3、内部类的加载3.1、 局部内部类3.2、 匿名内部类3.3、匿名内部类里...原创 2020-05-01 10:50:35 · 509 阅读 · 0 评论 -
(九)Java枚举类
1、原创 2020-05-01 09:48:47 · 758 阅读 · 0 评论 -
(八)Java的Class类和Object类解析
本文目录:1、Java Class类1.1、Class类简介1.2、Class类原理1.3、获得一个Class类对象1.4、使用Class类对象来生成目标类实例2、Java Object类2.1 Object类简介2.2.1 Object类方法简介2.2.2 类构造器public Object()2.2.3 registerNatives()方法2.2....原创 2020-04-30 22:26:02 · 1629 阅读 · 0 评论 -
(七)Java中的构造方法、代码块和代码执行顺序
本文目录:1、构造方法1.1、构造方法简介1.2、构造方法实例1.3、Java中的几种构造方法1.3.1、普通构造方法1.3.2、默认构造方法1.3.3、重载构造方法1.3.4、子类构造调用父类构造2、代码块2.1 Java中的代码块简介2.1.1 代码块2.1.2 静态代码块和构造代码块的异同点2.2 Java中的代码块使用2.2.1 ...原创 2020-04-30 20:19:18 · 750 阅读 · 0 评论 -
(六)Java抽象类和接口
1、抽象类1.1、抽象类介绍(1)什么是抽象类?从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程,称为抽象。 这句话概括了抽象的概念,而在Java中,你可以只给出方法的定义不去实现方法的具体事物,由子类去根据具体需求来具体实现。这种只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是...原创 2020-04-30 14:41:08 · 924 阅读 · 0 评论 -
(五)Java中的类文件结构
本文目录1、Java类文件1.1、Java类文件:(1)*.java(2)*.class(3)联系与比较(4)总结1.2 Java源文件中public类(1)public类说明(2)相关问题1.3 Java类中的Main方法1.4 外部类的访问权限2、Java类包2.1、Java中包概念2.2、包的作用2.3 Import关键字2.4...原创 2020-04-30 11:53:58 · 706 阅读 · 0 评论 -
(四)Java final关键字
1、final简介在Java中,可以将实例域定义为final。在构建对象时必须初始化这样的值。必须确保在每个构造器执行之后,这个域的值被设置,并且在后面的操作中不再对其修改。使用final声明变量之后,这个值就不能修改,一般final类型的变量都被声明为静态变量,而且是公有类型的,它在内存中被放在一个特有的公共区域。final关键字在Java中使用非常广泛,可以申明成员变量、方法、类、本地...原创 2020-04-29 23:07:18 · 139 阅读 · 0 评论 -
(三)Java String类
本文目录1、String基础知识1.1、Java中的String类1.1.1、创建字符串1.2、String基本用法1.2.1、创建String对象的常用方法1.2.2 String类中的常用方法1.3、Java中String、StringBuilder和StringBuffer的区别2、Java String类的源码分析2.1、String类型的intern...原创 2020-04-29 22:00:18 · 652 阅读 · 0 评论 -
(二)Java自动装拆箱
1、Java基本数据类型变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。1.1、Java的两大数据类型Java中的数据类型可以归结为两大类: 内置数据类型 引用数据类型 1.2、内置数据类型...原创 2020-04-29 00:05:24 · 634 阅读 · 0 评论 -
(一)Java面向对象三大特性
本文目录1、前言2、面向对象2.1 对象的概念2.2 面向对象和面向过程的区别2.2.1 面向过程2.2.2 面向对象3、面向对象三大特性简介3.1 继承3.2 封装3.3 多态4、面向对象编程三大特性详解4.1 继承4.1.1 继承简介4.1.2 继承的优点4.1.3 继承的语法4.1.4 继承的注意点4.2 封装4.2.1...原创 2020-04-28 23:19:07 · 1114 阅读 · 0 评论 -
IDEA导入Java web项目配置运行
一、导入项目二、配置maven仓库、JDK版本三、配置tomcat1、原有web项目配置了tomcat,但是和自己电脑上的tomcat版本不一致等原因,导致不能运行tomcat,需要对项目进行自己电脑上IDEA的tomcat配置。配置自己电脑上使用的tomcat:注意:很多时候,我们以为修改到此就可以运行项目了,但是如果很不幸,比如说如下:2、配置tomcat...原创 2020-04-08 00:33:44 · 2364 阅读 · 0 评论 -
一些在Linux下上线部署Java项目程序进行测试的常用操作命令
最近在将SpringBoot项目上线部署到Ubuntu服务器中测试,常用以下终端操作命令,不时更新: 启动SpringBoot程序后台运行,不在终端显示:nohup java -jar XXX.jar & 查看控制台日志: cat nohup.out(程序在后台运行时,默认把控制台输入放入当前文件夹下的nohup.out文件中) 查看nohup.out文件中的倒数...原创 2020-04-06 13:26:47 · 496 阅读 · 0 评论 -
[MySQL ERROR] XXX.DruidDataSource - create connection error...errorCode 1698, state28000错误的解决方案
1、问题描述出错描述如题,SpringBoot后台应用程序使用了Druid连接池,SpringBoot后台服务程序在本地测试和上线一开始都没有问题(也可能是因为我没有长时间测试),后台程序在阿里云服务器上运行一段时间后,某天打开测试发现没有响应,查看系统错误日志,如下:2020-04-06 00:01:00.641 [ERROR] c.alibaba.druid.pool.DruidDa...原创 2020-04-06 13:19:49 · 4145 阅读 · 1 评论 -
【填坑】配置Https出错问题解决:--at org.apache.tomcat.jni.SSL.renegotiatePending(Native Method)问题
1、掉坑跳坑如下:当使用SpringBoot 2.2.1时,默认使用内置tomcat的版本为9.0.27;此时,程序可以编译运行;然而,当使用postman或者浏览器进行访问时,出错,如下:出错原因为tomcat版本升级所致,需将tomcat降为9.0.12或以下;再次运行时,出错,如下:该出错原因为SpringBoot版本升级所致,将SpringBoot降...原创 2019-12-26 15:57:14 · 1280 阅读 · 2 评论 -
Description Resource Path Location Type Java compiler level does not match
用eclipse开发导入别人的项目的时候经常遇到这个问题,就转载过来了~此文为转载文章!!!原文链接:https://blog.youkuaiyun.com/qq_26400953/article/details/55224186导入别的地方移过来的maven项目时我们经常会碰到一个问题,Description Resource Path Location Type Java compiler lev...转载 2019-10-31 10:24:17 · 419 阅读 · 0 评论 -
Spring Boot Web后台服务器开发——添加https支持及http映射https流程实例
一、https原理https是身披SSL外壳的http。https是一种通过计算机网络进行安全通信的传输协议,经由http进行通信,利用SSL/TLS建立全信道,加密数据包。https使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。SSL协议可以分为两层:SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议如TCP之上,为高层协议提供数据...原创 2019-09-10 17:38:59 · 1566 阅读 · 0 评论 -
org.springframework.web.servlet.PageNotFound noHandlerFound 警告: No mapping found for HTTP request
(1)错误描述:①错误提示:org.springframework.web.servlet.PageNotFound noHandlerFound 警告: No mapping found for HTTP request②problem显示:Description Resource Path Location Type Archive for required libr...原创 2019-08-12 17:36:01 · 9484 阅读 · 0 评论 -
Servlet.init() for servlet [springDispatcherServlet] threw exception找不到配置的bean的问题
(1)问题描述如下:错误定位到:org.springframework.beans.factory.BeanCreationException: Error creating bean with name'org.springframework.web.servlet.view.InternalResourceViewResolver' defined in class path r...原创 2019-08-12 17:35:08 · 19877 阅读 · 3 评论 -
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
(1)问题描述:(2)问题原因:jdk版本导致的问题,到时jar缺失所致;注:JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包。而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的(3)问题解决:参考解决方...原创 2019-08-12 17:28:16 · 4910 阅读 · 0 评论 -
log4j日志的问题:log4j:WARN No appedners could be found for logger (org.jboss.logging).
(1)问题描述:(2)问题原因:缺少log4j.properties日志文件,或日志文件没有放在src资源根目录下;(3)解决方案: 增加log4.properties日志文件,并把文件放置在src资源文件夹根目录下;log4j.properties文件内容可如下所示:...原创 2019-08-12 11:39:49 · 923 阅读 · 0 评论 -
《Java基础入门》自学笔记之易混易错理解点
1. static关键字只能用于修饰成员变量,不能用于修饰局部变量;2. Static静态方法,不需要创建对象就可以调用;3. 静态代码块只执行一次;4. 内部类:在成员内部类中可以访问外部类的所有成员;5. 内部类:在静态内部类中可以定义静态的成员,在非静态的内部类中不允许定义静态的成员;6. 通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次...原创 2019-08-12 17:38:47 · 238 阅读 · 0 评论 -
JDK11下载安装与使用命令行执行java程序教程
(一)JDK下载安装:1.JDK下载:以JDK11.0.3为例不废话,直接上下载网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html2.打开后选择对应电脑配置的版本下载,如下:这里我选择WindowsX64的exe版本3.下载之后直接双击开始安装...原创 2019-06-21 16:12:23 · 2978 阅读 · 1 评论