
110-Java语言
文章平均质量分 76
oscar999
毕业于中国科学技术大学,数据库四级、通过系统设计师、系统分析师、信息系统项目管理师资格认证。国际项目管理(IPMP)C级认证。超过15年软件项目开发和管理经验,精通Java Web相关技术(包括Spring系列、Ext JS等),对PHP、Python、C#、Vue等有涉猎。
展开
-
VS Code中的JDK设置
Java Language Server可以与不同的Java编译器(如Eclipse JDT、Java编译器API)进行集成,从而使其能够对Java代码进行分析和处理。通过安装Java插件并配置Java Language Server,开发者可以在VS Code中进行Java开发,并享受到类似于Eclipse或IntelliJ IDEA等集成开发环境的功能。则是用于指定VS Code的Java插件使用的JDT Language Server所需的JDK版本的设置。时,需要提供JDK的安装路径。原创 2024-02-15 19:59:46 · 18088 阅读 · 2 评论 -
VS Code之Java代码重构和源代码操作
本篇介绍VS Code在Java 开发的代码重构和源代码操作原创 2024-02-15 10:52:01 · 1668 阅读 · 0 评论 -
安装了多个Java版本如何指定特定版本
当安装JRE时,它会将Java的可执行文件解析链接到这个路径中。这个路径的目的是提供一个可供所有用户访问和使用Java的统一位置。因为某些软件需要支持JDK 8之上的版本,所以需要进行高版本的JDK安装。同一台机器可以进行多个JDK的安装,但是这里为了简便起见,使用了 OpenJDK 17的解压版本。基于以上,故会出现上面的配置了 JAVA _HOME 和 Path之后, 指定Java版本依旧没有生效的状况。机器安装了一个JDK 8的安装版本,默认的安装路径是。,这个路径是怎么来的呢?原创 2024-02-11 18:14:16 · 1428 阅读 · 0 评论 -
Eclipse插件之Tomcat Plugin 介绍、安装与使用
Eclipse Tomcat 插件为开发Java Web应用程序提供了Tomcat容器的简单集成。所谓的集成其实主要是以下功能:1. 在Eclispe中启动和关闭Tomcat2. 启动后的应用可以很容易的打断点进行调试, 这一点应该是该插件最大的优势。原创 2022-12-27 09:28:29 · 3492 阅读 · 10 评论 -
Eclipse 插件 ERMaster安装与使用
ERMaster是制作ER图(Entity Relationship Diagram,实体关系图)的Eclipse插件。 提供了从数据库导入、Excel表定义簿制作、图片输出、DDL输出等功能原创 2022-12-26 22:27:52 · 2427 阅读 · 1 评论 -
Maven环境变量配置内容和方式
Maven 无须安装,下载压缩档之后直接解压就可以。在Maven 的使用中可以不配置环境变量、在操作系统中配置环境变量或是通过命令方式设置环境变量。原创 2022-06-02 06:41:21 · 869 阅读 · 0 评论 -
Java招聘的一些心得和建议
Java招聘心得和建议原创 2022-04-30 08:06:18 · 501 阅读 · 0 评论 -
HttpClient 使用证书访问https站点
使用HttpClient访问https 站点时,如果JRE或者JDK没有导入某个站点的证书,则会报如下错误:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification原创 2022-02-19 12:25:35 · 4385 阅读 · 0 评论 -
Java Keytool 命令行工具
Keytool 是Java提供的密钥(Key)和证书(Certificate)管理工具,用于管理公钥/私钥对以及相关证书。原创 2022-02-17 22:07:20 · 4763 阅读 · 0 评论 -
Fluent API — 流畅API(基于Java介绍)
Fluent API ,流畅API, 也称作流式API。Fluent API 是一种面向对象的API,主要基于方法链原创 2022-01-18 22:31:25 · 3947 阅读 · 0 评论 -
HttpClient 如何正确的释放资源
使用HttpClient 访问会涉及到三个层次的资源, 从上往下依次是:1. HttpClient 类型的对象。这是Http 呼叫的客户端。2. Http的请求的对象,一般是HttpGet 或者HttpPost, 这个代码了一个Http的链接请求。3. 从目标地址获取的响应流 HttpResponse,某些状况下响应的结果是以流的形式返回,使用完成最好是关闭流。原创 2022-01-03 09:53:00 · 4890 阅读 · 0 评论 -
Java实现Base64编码和解码的方式
从Java 8 开始, Base64 就成为Java类库的标准,位于java.util 的包下。对应类是Base64。原创 2022-01-02 10:25:29 · 26422 阅读 · 0 评论 -
HttpClient 入门与正确使用姿势
HttpClient 提供了一个高效,功能丰富的包实现最新的HTTP 标准的客户端。一句话, HttpClient 是Java 语言中访问Http资源的强大的工具包。原创 2021-12-31 07:11:10 · 873 阅读 · 0 评论 -
Log4j CVE-2021-44228后续-CVE-2021-45046,CVE-2021-45105
在Log4j 发现远程代码攻击漏洞(CVE-2021-44228 )之后, Apache 随即发布了 2.15.0版本, 但是发布的这个版本在线程上下文查找依旧存在远程代码攻击漏洞(CVE-2021-45046),于是随后又发布了 2.16.0版本; 不幸的是,两天后,Log4j 又被发现了DOS(拒绝服务)的漏洞(CVE-2021-45105), 于是又发布了2.17.0 版本, 截止目前位置, Log4j 在Java 8的**安全版本是2.17.0 **。原创 2021-12-20 21:17:24 · 1308 阅读 · 0 评论 -
Java使用PBE算法进行对称加解密最简入门和示例
使用Java 实现PBE 加密和解密的最简入门和示例原创 2021-12-11 11:07:24 · 3704 阅读 · 0 评论 -
Java使用JNDI调用配置在服务器(Weblogic、Tomcat)的数据源配置
本篇介绍在Weblogic和Tomct 中配置数据源, 并演示使用Java JNDI获取数据库连接的代码示例。WebLogic 的配置与使用WebLogic 控制台可以配置数据源。左侧导航栏 Services > Data Sources点击New 按钮 Generic Data Source, 输入名字, 数据库类型, 驱动, 数据库地址, 用户名, 密码等等信息完成创建。在代码中,获取数据源的代码如下:Context initCtx = new InitialContext();原创 2021-10-22 07:45:57 · 857 阅读 · 0 评论 -
FreeMarker快速入门
FreeMarker 是什么?FreeMarker 是一款模板引擎。 也就是结合模板和数据, 用来产生输出文本的工具, 输出的文本格式包括: HTML网页、电子右键,源码等等。FreeMarker 是一个Java的类库,其定义了一套简单的模板语言的语法。FreeMarker 完全免费。FreeMarker 能干什么?最典型的在Java MVC架构中用来作为视图层的显示组件,替代JSTL(JSP标准标签库)。在Spring Boot等框架中提供了很好的集成。作为复杂email 的模板引擎。…原创 2021-10-21 21:54:24 · 634 阅读 · 0 评论 -
Lambda表达式的生动理解以及Java Lambda表达式常见使用场景
本篇承接上一篇 Java Lambda 表达式快速学习 , 对Lambda 表达式的语法格式进行演化说明, 并对Java 中Lambda表达式的常见使用场景进行说明。Lambda 表达式怎么来的?在Java 中, 给一个字符串变量赋值就很简单, 类似:String str = "Hello World.";函数的赋值如果要把一个函数赋值给一个变量怎么办呢?类似一般的变量赋值, blockOfCode = public void method(String s) {原创 2021-09-15 06:33:28 · 783 阅读 · 0 评论 -
Java Lambda 表达式快速学习
Lambda 表达式来源于数学, 因为其简洁性,很多开发语言都支持, Java 在版本8 开始引入。Lamba 表达式是什么?匿名内部类接口只能有一个需要被实现的方法Lamba 表达式作用代码变得简洁Lamba 表达式可以直接作为参数传递给函数Lamba 语法()->{}()括号 用来描述参数列表{}大括号 用来描述方法体-> 是Lambda 运算符,读作goes to(parameters) -> expression(parameters)原创 2021-09-10 22:22:12 · 383 阅读 · 1 评论 -
JVM GC一篇通 - 基础与调优
GC 基础GC 有三种语义:Garbage Collection , 垃圾收集技术Garbage Collector 垃圾收集器Garbage Collecting 垃圾收集动作。GC 中的一些概念Mutator , 翻译是突变体, 是生产垃圾的角色,也就是应用程序TLAB, Thread Local Allocation Buffer , 每个TLAB 都是线程独享的。Card Table, 翻译是卡表, 用来标记卡页的状态, 每个卡表项对应一个卡页。STW, S原创 2021-08-31 07:00:09 · 1702 阅读 · 0 评论 -
CXF 生成Web Service Client(将WSDl 转化成 Java代码)
CXF 是什么Apache CXF一个开源的Service框架,它实现了JCP与Web Service中一些重要标准。CXF简化了构造,集成,面 向服务架构(SOA)业务组件与技术的灵活复用。在CXF中,Service使用WSDL标准定义并能够使用各种不同的消息 格式(或binding)和网络协议(transports)包括SOAP、XML(通过HTTP或JMS)进行访问。CXF同样支持多种model 如:JAX-WS,JBI,SCA和CORBA service。CXF设计成可灵活部署到各种容器中包括S原创 2021-04-21 06:41:30 · 812 阅读 · 0 评论 -
Eclipse快速创建Bottom Up类型的Web Service服务端
什么是Buttom 的Up Web Service简言之就是从一个Java类创建Web Servcie服务(包括WSDL文件,部署描述文件等)。本篇演示环境配置Eclipse Version: 2019-06 (4.12.0)JDK 1.8.0_211Tomcat apache-tomcat-9.0.30示例步骤在Eclipse 中创建一个动态Web项目,项目名词是myWebFile > New > Other, 在弹出窗口选择 Web > Dynamic Web原创 2021-04-12 22:27:36 · 418 阅读 · 1 评论 -
EclipseLink+H2 快速搭建JPA开发环境
JPA是Java Persistence API, 是Java提供的持久层开发的统一API。但是JPA只是定义的规范接口,并没有提供具体实现, JPA的具体实现有Hibernate 、EclipseLink等。H2是Java开发的开源内嵌数据库, H2数据库不需要安装,直接导入jar 档既可以快速实现数据库的开发,数据可以存储在文件系统或是内存中。H2最大的特点就是轻量、免安装。可以用来快速搭建数据库开发环境,常用来学习和演示。对于使用Eclipse 集成开发环境的开发者来说, 搭建EclipseLin原创 2021-04-07 06:50:18 · 489 阅读 · 0 评论 -
Java 连接LDAP实现验证与查询用户
在企业级应用中,LDAP常用来进行用户的统一管理和验证。用户登录应用系统时,输入用户名和密码, 应用系统到LDAP服务器验证该用户名密码是否有效。Java本身提供了JNDI相关的API可以连接和查询LDAP。主要步骤包括:设置初始LDAP上下文的属性,并初始化LDAP上下文设置查询的属性通过上下文查询记录获取查询的内容关闭 上下文,释放连接示例代码如下:String principal = "Manager"; String password = "secret"; String原创 2021-03-31 07:20:15 · 3161 阅读 · 0 评论 -
Java IO 整体介绍(IO/NIO)
IO是Input和Output的简写,即输入和输出。在计算机中的IO包含有多种类型,常见的有:文件的输入和输出网络数据的输入和输出在Java中,IO的实现包括两个部分:传统IONIO,Non-blocking I/O,是一种同步非阻塞的I/O模型,也称为New IO。用于高并发与大量输入输出的场景。出现于JDK1.4, 提供了 NIO相关的API。传统IOJava 传统IO主要包含三个类别字节流 : 以字节为单位进行读取和写入,可以用于所有类型文件(文本类型、二进制类型)的读取。原创 2021-03-10 22:22:23 · 386 阅读 · 0 评论 -
Spring Boot 文件上传功能实现与简单示例
Java 语言中, 文件上传使用较早和较广泛的方式是使用Apache Commons FileUpload,这是Apache组织提供的一个文件上传的库, 但是在Servlet 3.0 之后, Java官方就提供了文件上传的实现。Spring Boot本身并没有文件上传的实现, 但是其封装了一个上层的接口,可以兼容多种文件上传的实现库,也就是说, 你可以选择并切换不同的文件上传实现, 但是Spring Boot的代码是维持不变的。本篇以 Commons FileUpload作为文件上传的实现库, 前端使用原创 2021-01-30 21:25:19 · 13756 阅读 · 3 评论 -
Eclipse下安装EclipseLink进行JPA开发
本篇使用的Eclipse及JDK版本Eclipse版本Version: Photon Release (4.8.0)Build id: 20180619-1200或者Version: 2019-06 (4.12.0)Build id: 20190614-1200Java 版本JDK 1.8创建JPA 项目及EclipseLink的下载File>New>Other选择 JPA>JPA Project在创建窗口输入项目名称,选择JDK版本和JPA的版本。连原创 2021-01-11 07:16:39 · 1957 阅读 · 0 评论 -
java.sql.SQLException: Protocol violation 解决方法
本篇承接这一篇 :java.sql.SQLException: Protocol violation 问题解析问题描述应用可以正常启动,但是运行一段时间时候偶尔会出现这个错误。java.sql.SQLException: Protocol violation: [100] oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:527) oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227) o原创 2020-07-29 23:31:45 · 10135 阅读 · 0 评论 -
Java枚举(Enum)类型使用的正确姿势
基础使用通过枚举类直接调用使用下面的常量,返回的类型也是枚举类型。代码如下: SeasonEnum season = SeasonEnum.SPRING; Assert.assertTrue(season.equals(SeasonEnum.SPRING)); Assert.assertTrue(season.name().equals("SPRING")); //获取名称 Assert.assertTrue(season.ordinal(原创 2020-07-09 07:23:37 · 11355 阅读 · 1 评论 -
Java枚举(Enum)类型的基本介绍与原理探求
Enum枚举类型Enum的全写是Enumeration,这个词的翻译是列举、逐条陈述、细目。在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串、整型),这种数据类型的变量值限定在固定的范围, 比如季节只有春夏秋冬,月份是12个。Java中的枚举枚举前时代在Java语言中, 枚举类型从JDK1.5才开始提供。在这之前使用接口静态常量来实现相关功能(也可以是类静态常量),以季节为例:在不使用枚举类之前,一般使用接口静态常量实现。比如:/** * @ClassName: Seas原创 2020-07-07 23:09:06 · 1375 阅读 · 1 评论 -
SpringBoot应用中JSP的角色及整合
在Eclipse下报如下错误:bean named ‘entityManagerFactory’ that could not be found看上去没有任何问题。通过控制台启动:[ERROR] error reading D:\inssoftware\apache-maven-3.5.3\repository\org\hibernate\hibernate-core\5.4.12.Fi...原创 2020-04-15 22:27:39 · 860 阅读 · 0 评论 -
invalid LOC header(bad signature)错误及解决
问题:xx.jar; invalid LOC header(bad signature)发生场景:使用Maven下载依赖包后,启动Spring应用或是启动Tomcat等服务器时。原因及解析:错误的内容是: xx.jar这个文件出错,无效的LOC头(错误的签名)。LOC可以认为是 Length Of Code的简写。也就是文件的大小, 那这里的签名有做和解释呢?出于安全性考虑, 一般...原创 2020-04-11 21:16:20 · 17940 阅读 · 0 评论 -
Java之Normalizer(归一化)
文章目录什么是归一化?什么是归一化?归一化的概念在人工智能领域会普通看到, 比如使用TensorFlow框架编码时,就会出现数据归一化的步骤或函数。简单来说, 归一化就是对一组数据进行转换,使这组数据具备相同的格式或特性。举例来说: 一组任意的整数数组:1,2,400,5000, 如果每个数都除以这组元素中的最大值的话(这里是5000),则这个数组元素的值位于0-1之间,满足数学上概率的值的...原创 2020-04-06 09:26:53 · 12438 阅读 · 0 评论 -
Vaadin介绍与开发练习之二(创建第一个Vaadin类)
文章目录默认项目目录结构开发实例本篇承接上一篇:Vaadin介绍与开发练习之一在上一篇中通过Vaadin在线工具产生了一个普通的Servlet项目:my-vaadin,之后将该项目导入Eclipse, 使用Maven安装之后(maven install), 通过Maven的jetty:run命令进行运行。本篇对上一篇项目进行详细介绍的基础上,演示简单的开发实例。默认项目目录结构导入的项...原创 2020-03-25 20:00:12 · 985 阅读 · 0 评论 -
Vaadin介绍与开发练习之一(总体介绍与创建项目)
Vaadin是什么?Vaadin是一个web应用程式开发框架。基于这个框架,开发者可以使用Java开发高质量的用户界面。Vaadin由位于芬兰的 IT Mill公司开发。 其前身是 IT Mill 公司由2000年起开始研发的 Millstone用户界面类库。Vaadin提供了一系列的用户界面组件用来创建自己的组件。特点主要包含:易用、可重用、可扩展和满足大型企业应用需求。Vaadin...原创 2020-03-22 20:16:49 · 12051 阅读 · 3 评论 -
Java之消息摘要之commons codec
文章目录前言commons codec的导入字符串的消息摘要文件的消息摘要前言本篇关于Hash、摘要算法的前备理论参考 消息摘要(Message Digest)及其算法。JDK自带java.security.MessageDigest 类可以用来产生字符串的消息摘要的字节数组(byte[]),转换后得到16进制的长度32的字符串,详细实现参考: Java之消息摘要(MD5)。 使用JDK的基...原创 2020-02-07 11:44:27 · 808 阅读 · 0 评论 -
Java安全模型与简单示例
Java语言从一开始就有安全上的考虑,如何保证物联网下载的Java程序是安全的。Java安全模型进化Java将执行程序分为本地和远程两种,本地默认是可信的,而远程被看作是不授信的。对于授信的本地代码,可以访问一切本地资源,而对于非授信的远程代码,则做权限的限定。Java的安全机制在不同的JDK版本逐步演化,JDK 1.0 安全模型在早期的Java实现中,使用沙箱机制,将Java代码限...原创 2020-02-06 14:22:56 · 644 阅读 · 0 评论 -
Applet授权细节
文章目录Applet在浏览器运行的要求JRE安全运行机制java.security安全策略文件的主要格式1. keystore2. grantJRE默认的安全设置(JRE下的java.policy文件)用户目录下的策略文件权限设置方式此篇承接说透Applet的数字签名之1——Applet及其运行说透Applet的数字签名之2——数字签名Applet在浏览器运行的要求在浏览器端要显示A...原创 2020-01-26 12:18:43 · 748 阅读 · 0 评论 -
Https及基于Tomcat的开发配置
HTTP是什么?介绍HTTPS之前,先看一下HTTP(HyperText Transfer Protocol), 超文本传输协议。HyperText: 超文本,为什么叫超文本,Web服务器返回给浏览器端的是包含HTML标签的源码,而不是直接在网页上显示的内容,故称之超文本。Transfer: 这个词更精确的翻译是转移,HTTP协议的请求和响应除了包含请求体和响应体之外,还包含了请求头和响应头...原创 2020-01-09 20:12:22 · 751 阅读 · 7 评论 -
前后端分离的用户验证原理及Spring Boot + JWT的框架搭建(附完整的框架代码)之二
本框架整体描述Spring Boot: Bean容器和后端框架,提供REST服务使用JPA持久层统一API进行数据访问和操作, 底层使用HIbernate ORM框架数据库使用MySQLJWT:了解以上过程,就很容易理解以下现象:MhdleW9uQYZFMJJiboJaC2ZXCFjzfcf_2YGoS-qBBFaN9k3w2yZO!-2102516688Java的处理Jses...原创 2020-01-04 12:57:27 · 1197 阅读 · 0 评论