
Java基础
文章平均质量分 72
Java是Sun Microsystems于1995年首次发布的编程语言和计算平台。它通过提供可靠的平台来构建许多服务和应用程序,从最初的卑微发展成为当今数字世界的一大部分。为未来设计的新的创新产品和数字服务也继续依赖Java。
逆流°只是风景-bjhxcc
当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人,学会与内心深处的你对话,问问自己,想要怎样的人生,静心学习,耐心沉淀,送给自己,共勉。
展开
-
【面试题】Spring 事务的实现方式和实现原理?
Spring 事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring 是无法提供事务功能的。声明式事务本质是通过 AOP 功能,对方法前后进行拦截,将事务处理的功能编织到拦截的方法中,也就是在目标方法开始之前加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。ISOLATION_SERIALIZABLE:一个事务在执行的过程中完全看不到其他事务对数据库所做的更新。Spring 事务的传播行为说的是,当多个事务同时存在的时候, Spring 如何处理这些事务的行为。原创 2023-06-30 16:38:12 · 733 阅读 · 0 评论 -
【java】Java中-> 是什么意思?
在接口中新增了default方法和static方法,这两种方法可以有方法体 (*default方法可以被子接口继承亦可被其实现类所调用,default方法被继承时,可以被子接口覆写;Date api(Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数;访问接口的方法:Predicate接口(有一个参数并且返回一个结果,并附带了一些可以和其他函数组合的默认方法);原创 2023-03-11 07:00:00 · 850 阅读 · 0 评论 -
【java】Java教程
Java教程-特性/语法/对象和类/基本数据类型/变量修饰符运算符/循环结构和条件语句/数组/正则/文件IO/异常处理详细总结原创 2022-12-12 08:00:00 · 908 阅读 · 0 评论 -
【java】Java连接mysql数据库及mysql驱动jar包下载和使用
jar包下载及导入:将下载好的压缩包进行解压:解压之后下图就是连接数据库所用到的jar包:将jar包复制粘贴到IDEA所用的项目下,放置jar包的目录可以是自己新建的,也可以和项目同在一个目录下。原创 2023-03-06 14:18:21 · 10945 阅读 · 3 评论 -
【java】为什么 main 方法是 public static void ?
main方法必须声明为public、static、void,否则JVM没法运行程序如果JVM找不到main方法就抛出NoSuchMethodError:main异常,例如:如果你运行命令:java HelloWrold,JVM就会在HelloWorld.class文件中搜索public static void main (String[] args) 方法。main方法是程序的入口,程序执行的开始处。原创 2023-03-06 07:00:00 · 422 阅读 · 2 评论 -
java基础(static---静态方法和静态变量以及静态方法)
静态变量static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量:静态变量被类中所有的对象所共享,它将变量值存储在一个公共的内存地址,因为地址公共,所以如果某个对象修改了静态变量的值,那么同一个类的所有对象都会受到影响。非静态变量:非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。静态方法静态变量和方法可以在不创建对象的情况下进行访问。静态方法与实例方法的区别:静态方法:静态方法会随着类的定义而被分配和装载入内存中。静态方法可以调用静态原创 2021-02-23 19:34:34 · 689 阅读 · 0 评论 -
【java】Java 枚举(enum)如何使用以及原理
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。例如定义一个颜色的枚举类。以上枚举类 Color 颜色常量有 RED, GREEN, BLUE,分别表示红色,绿色,蓝色。使用实例:实例enum Color执行以上代码输出结果为:RED。原创 2022-12-16 21:25:14 · 247 阅读 · 0 评论 -
Java 发送邮件
使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF)。你也可以使用本站提供的下载链接:JAF(版本 1.1.1) activation.jar下载并解压缩这些文件,在新创建的顶层目录中,您会发现这两个应用程序的一些 jar 文件。您需要把 mail.jar 和 activation.jar 文件添加到您的 CLASSPATH 中。原创 2022-12-30 19:25:54 · 1188 阅读 · 0 评论 -
Java 关于java.util.LinkedHashMap cannot be cast to 实体类问题答案
for (Object object : list) { JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(object)); EntityVo entityVo = jsonObject.toJavaObject(EntityVo.class); } ```原创 2021-05-21 13:34:19 · 424 阅读 · 0 评论 -
CollectionUtils
假设两个对象,重写了其equals方法,其相等条件是某属性相等,就返回true,如果不重写hashCode方法,其返回的依然是两个对象的内存地址值,必然不相等,这就出现了equals方法相等,但是hashCode不相等的情况,这不符合hashCode的规则。光从代码中可以知道,hashCode方法是一个本地native方法,返回的是对象引用中存储对象的内存地址,而equals方法是利用==来比较也是对象的内存地址,从上面看出,hashCode方法和equals方法是一致的,还有最关键的一点。原创 2022-12-15 12:32:57 · 1300 阅读 · 0 评论 -
为什么java是强类型语言?
周六早上半睡半醒间突然想到一个问题:Java bean与Map里面的键值对到底啥关系;因为最近一直在复制粘贴前端,前台取对象属性的时候个人觉得后台传Java bean或者键值对,对前端使用者来说区别并不大,这个问题甚至让我纠结了一早上;但是我忽略了Java毕竟是强类型语言,而JavaScript是弱类型语言;这一早上撤来扯去,好像思考了一个没什么意义的问题;个人觉得前台因为业务变动,适应各种业务变化,复用性不是很大,因此引入JavaScript方便灵活操作;虽然会牺牲一些运行性能,不过简单好用原创 2021-04-13 21:40:58 · 774 阅读 · 0 评论 -
【java】java 多线程编程
Java 给多线程编程提供了内置的支持。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。原创 2022-12-30 19:47:36 · 1553 阅读 · 0 评论 -
【Java】JavaEE的13种核心技术
JavaEE的13种核心技术,JavaEE是J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。许多朋友想要通过掌握好JavaEE的技术,方便自己以后在企业中成为一名优秀的Java架构师,那么JavaEE都有哪些核心技术呢?JavaEE平台由一整套服务、应用程序接口和协议构成,它对开发基于Web的多层应用提供了功能支持。原创 2023-01-06 11:39:50 · 1556 阅读 · 0 评论 -
Java HashSet
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 允许有 null 值。HashSet 是无序的,即不会记录插入的顺序。HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。HashSet 实现了 Set 接口。HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。基本类型对应的包装类表如下:HashSet 类位于 java.util 包原创 2022-12-22 09:45:21 · 330 阅读 · 0 评论 -
Java Iterator(迭代器)
Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。迭代器 it 的两个基本操作是 next 、hasNext 和 remove。调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。原创 2022-12-30 17:52:04 · 695 阅读 · 0 评论 -
Java HashMap
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即不会记录插入的顺序。HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。原创 2022-12-22 09:58:53 · 445 阅读 · 0 评论 -
javac和java命令详解
javac 是java语言编程编译器。全称java相信大家在学习java编程的时候,一定使用过javac和java这两个命令。大家在安装JDK的时候,验证是否安装成功,都会在命令行里输入java和javac命令来验证,这就是我们第一次使用java和javac命令。安装成功后,紧接着,我们会写个HelloWorld程序开始我们的java编程之旅。程序写完后,我们需要使用javac命令将源代码编译成class字节码文件,最后,再使用java命令来运行我们的字节码文件。到了这一步,我们的java之旅就正式开始了。原创 2023-01-05 11:42:12 · 7708 阅读 · 0 评论 -
Java 文档注释
Java 支持三种注释方式。前两种分别是 // 和 /*/,第三种被称作说明注释,它以 /* 开始,以 */结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。说明注释,使你更加方便的记录你的程序信息。javadoc 标签。原创 2022-12-31 10:02:25 · 788 阅读 · 0 评论 -
Java类和对象(二)
上一篇Java类和对象 详解(一)讲解了类和对象的基本概念,定义和使用,以及对象引用传递的初步分析,下面接着来讲其他内容。一、面向对象的封装性封装(encapsulation)又叫隐藏实现(Hiding the implementation)。就是只公开代码单元的对外接口,而隐藏其具体实现。比如手机,手机的键盘,屏幕,听筒等,就是其对外接口。你只需要知道如何按键就可以使用手机,而不需要了解手机内部的电路是如何工作的。封装机制就像手机一样只将对外接口暴露,而不需要用户去了解其内部实现。在研究封装性之前,原创 2021-02-17 20:33:11 · 239 阅读 · 1 评论 -
Java 网络编程
网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。java.net 包中提供了两种常见的网络协议的支持:TCP:TCP(英语:Transmission Control Protocol,传输控制协议) 是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP 层是位于 IP 层之上,应用层之下的中间层。原创 2022-12-30 19:00:38 · 461 阅读 · 0 评论 -
【Java】Java ArrayList自动扩容机制
1. ensureCapacityInternal方法名的英文大致是“确保内部容量”,size表示的是执行添加之前的元素个数,并非ArrayList的容量,容量应该是数组elementData的长度。之后扩容会按照1.5倍增长(10、15、22、、、)。根据传入的最小需要容量minCapacity来和数组的容量长度对比,如果minCapacity大于或等于数组容量,则需要进行扩容。JDK1.7通过无参构造方法(初始长度默认10,以默认的大小来初始化内部的数组)、有参构造方法对数组进行初始化。原创 2023-01-05 15:47:31 · 596 阅读 · 0 评论 -
Java类和对象(一)
一、面向对象简述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并原创 2021-02-17 18:21:37 · 314 阅读 · 3 评论 -
Java LinkedList
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。链表可分为单向链表和双向链表。一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。原创 2022-12-21 20:36:55 · 522 阅读 · 0 评论 -
【java】Java 包(package)
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。原创 2022-12-16 21:18:16 · 287 阅读 · 0 评论 -
有关java中的try{}catch(){}的讲解
try { 可能出现异常的代码(包括不会出现异常的代码)} catch (Exception e) { //()里为接收try{}代码块中出现异常的类型 如果出现异常时的处理方式}try-catch的执行顺序:①从 try{ } 代码块中第一行开始执行,执行到出现异常的代码,jvm会创建一个异常对象②判断catch中声明的异常类型是否能捕捉到jvm创建的异常对象i: 能捕捉到:直接跳到catch代码块中执行。 不会结束程序,继续从catch代码块后面的原创 2021-04-21 17:16:19 · 1204 阅读 · 0 评论 -
java list中内容转化为逗号分隔的字符串
实际项目经常用到的方法1String symbol = Joiner.on(",").join(symbolList);方法2:String symbol = StringUtils.join(symbolList.toArray(), ",");用来代替下面的方法 StringBuffer sb = new StringBuffer(); for(Object _symbol : symbolList){ sb.append("'").append(_symbol).ap.原创 2021-12-16 09:31:41 · 1251 阅读 · 0 评论 -
Java Stream流之求和
BigDecimal:BigDecimal bb =list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);int、double、long:double max = list.stream().mapToDouble(User::getHeight).sum();flipGroupDiscussEntityList1.stream().mapToInt(FlipGroupDiscussEntity::get原创 2021-11-19 02:27:26 · 504 阅读 · 0 评论 -
JDK8新特性Optional 类的使用
Optional类的使用JDK8以前,编写代码,通常会出现 NullPointerException (空指针异常),通常情况下我们都是通过 if … else… 来对对象进行为空判断,然后再进行逻辑处理,代码写起来也比较冗余。JDK8新增了Optional类,使用该类可以避免我们对空指针的检查,使代码看起来比较优雅。1. Optional类介绍JDK8 新增了 Optional 类, Optional 类是一个没有子类的工具类。我们可以把 Optional 类看作是一个容器。这个容器它有两种情况:原创 2021-01-26 21:49:48 · 959 阅读 · 0 评论 -
java常用中间件处理数据交互、连接数据分离之后两个系统间的通信
对于java中间件你都了解多少呢?究竟什么是java中间件?比较常用的java中间件都有哪些?一起来了解一下吧。一、什么是java中间件?首先的话,我们要来介绍一下究竟什么是java中间件。随着Java web开发的演进和进化,在面对消息系统、数据库、服务化接口的抽象等等涉及数据分离的过程当中,在分离过程当中,会涉及到分离之后,系统间、数据库间的交互。java中间件就是处理数据交互、连接数据分离之后两个系统间的通信。中间件不允许任何一个开发项目。也就是让我们对应系统间或者是数据库间数据流通没.原创 2021-12-23 15:42:47 · 872 阅读 · 0 评论 -
Java 泛型
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。假定我们有这样一个需求:写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?答案是可以使用 Java 泛型。使用 Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序。然后,调用该泛型方法来对整型数组、浮点数数组、字符串数组等进行排序。原创 2022-12-30 18:35:41 · 579 阅读 · 0 评论 -
【java】Java ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。..E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。objectName: 对象名。ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。原创 2022-12-21 20:14:47 · 117 阅读 · 0 评论 -
Java 数据结构
Java工具包提供了强大的数据结构。以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),我们后面再讨论。原创 2022-12-16 21:08:43 · 266 阅读 · 0 评论 -
Java 8 新特性
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。原创 2022-12-31 10:02:13 · 831 阅读 · 0 评论 -
【Java】java中javaSE与javaEE的区别
javaEE个人理解的就是在javaSE的基础上,添砖加瓦后出现的一种规范,说是框架也行。官方解释: Java EE,Java 平台企业版(Java Platform Enterprise Edition) 之前称为Java 2Platform, Enterprise Edition (J2EE) 2018年3月更名为 JakartaEE(这个名称应该还没有得到群众认可)。是 Sun 公司为企业级应用推出的标准平台,用来开发B/S架构软件。原创 2023-01-05 16:22:11 · 602 阅读 · 2 评论 -
Java八大基本数据类型
在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组会被编译成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit。注意,在整数之间进行类型转换时数值不会发生变化,但是当将整数类型特别是比较大的整数类型转换成小数类型时,由于存储精度不同,可能会存在数据精度的损失。当然,在类型转换的时候可以跳跃,也就是byte可以自动转换为int类型,原创 2022-11-15 09:40:56 · 490 阅读 · 0 评论 -
Java Object 类
Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。原创 2022-12-30 17:57:27 · 211 阅读 · 0 评论 -
java.lang.NullPointerException出现的几种原因以及解决方法
java.lang.NullPointerException出现的几种原因:字符串变量未初始化接口类型的对象没有用具体的类初始化,比如:Map map // 会报错Map map = new Map(); //则不会报错了当一个对象的值为空时,你没有判断为空的情况。字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常String str = null;if(str.equals(“Test”)){undefined//这里的代码将不会被触发,因为会抛出java.lan原创 2021-11-03 10:25:01 · 8884 阅读 · 0 评论 -
Java JDK 1.8 下载及其版本说明 8u202(最后一个免费版)
我们可以从Oracle官网下载我们想要的JDK版本打开官网下载地址: https://www.oracle.com/technetwork/java/javase/downloads/index.html默认看到的都是各个版本的最新一个版本,如果想要下载自己指定的版本,需要找到归档,归档版本在哪里呢,往下滑划到最下面哦,如下图?点击 DownLoad! 按钮,即可打开链接,结果见下图点击JavaSE8(8u202 and earlier),见下图选择这个版本,或者后面的版本,然后下载即可,原创 2020-12-23 08:24:21 · 40528 阅读 · 2 评论 -
java中接口(interface)
接口(interface)有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。接口(interface)是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。接口定义举例public interface Runner int id = 1 public void start() public void run() public原创 2021-02-20 17:34:37 · 250 阅读 · 0 评论 -
Java Objects.isNull() 方法及代码示例
判断一个对象是否为 null1.8参数参数类型参数名称参数描述Objectobj要针对 null 进行检查的引用注意事项API 注意事项本方法的存主要用于断言, 如: filter(Objects::isNull)执行结果为 :原创 2022-12-16 19:33:44 · 5487 阅读 · 0 评论