Java
文章平均质量分 52
Java 基础及高阶知识汇总
Harrytsz
这个作者很懒,什么都没留下…
展开
-
Java Collection Deque
Deque(java.util.Deque)接口代表着双向队列,意思就是可以从队列的两端增加或者删除元素,Deque就是双向Queue的意思。Deque 的实现既然Deque是个接口所以初始化时就要用到其具体的实现,在 Collections API中有下面两种实现:java.util.LinkedListjava.util.ArrayDequeLinkedList类是非常标准的Deque和Queue的实现,它在内部使用链接列表来建模queue或deque。ArrayDeque类内部存储元素原创 2022-01-24 19:54:35 · 222 阅读 · 0 评论 -
SpringBoot .properties 配置文件里的中文属性乱码问题
问题:SpringBoot 项目中的 .properties 配置文件里面如果有中文属性,Idea 控制台输出中文会乱码解决:在 @Configuration 修饰的配置类上添加如下注解:@PropertySource(value = "classpath:/xxx.properties", encoding="UTF-8")注意将 xxx 替换成自定义的 properties 文件名。...原创 2022-01-08 16:51:39 · 481 阅读 · 0 评论 -
Web.xml配置详解
Web.xml配置详解注*:集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序注*:图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。注*:EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是分布式应用程序。注*:第一个Servlet程序入门注*:context-param -> listener -> fil转载 2021-06-08 11:56:51 · 5574 阅读 · 0 评论 -
JetBrains下载历史版本
https://www.jetbrains.com/clion/download/other.html在上方的链接中将clion改为idea,phpstrom、webstrom等等原创 2021-01-15 21:39:04 · 484 阅读 · 0 评论 -
一文带你领略并发编程的内功心法
一文带你领略并发编程的内功心法原创 cxuan [Java建设者](javascript:void(0)????这是Java建设者的第111篇原创文章本篇文章我们来探讨一下并发设计模型。可以使用不同的并发模型来实现并发系统,并发模型说的是系统中的线程如何协作完成并发任务。不同的并发模型以不同的方式拆分任务,线程可以以不同的方式进行通信和协作。并发模型和分布式系统很相似并发模型其实和分布式系统模型非常相似,在并发模型中是线程彼此进行通信,而在分布式系统模型中是 进程 彼此进行通信。然而本质上,进原创 2020-08-11 10:08:50 · 155 阅读 · 0 评论 -
Spring Boot 入门
**一、**Spring Boot 入门1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;详细参照微服务文档3、环境准备http://www.gulixueyuan.c原创 2020-06-21 21:59:35 · 404 阅读 · 0 评论 -
Java集合 ArrayList原理及使用
ArrayList是集合的一种实现,实现了接口List,List接口继承了Collection接口。Collection是所有集合类的父类。ArrayList使用非常广泛,不论是数据库表查询,excel导入解析,还是网站数据爬取都需要使用到,了解ArrayList原理及使用方法显得非常重要。一. 定义一个ArrayList//默认创建一个ArrayList集合List<String> list = new ArrayList<>();//创建一个初始化长度为100的...原创 2020-06-12 15:54:50 · 237 阅读 · 0 评论 -
再说Java集合,subList之于ArrayList
本文续接上一章ArrayList原理及使用,对ArrayList中的常用方法subList进行了剖析,从源码的角度对通过subList方法得到的集合和原集合有何关系,有何不同点,从而避免工作中遇到各种坑 上一章说了很多ArrayList相关的内容,但还有一块儿内容没说到,那就是subList方法。先看一段代码public static void testSubList() { List<String> stringList = new ArrayL...原创 2020-06-12 15:46:06 · 236 阅读 · 0 评论 -
Java集合 LinkedList的原理及使用
本文基于java8从定义一个LinkList入手,逐步展开,从源码角度分析LinkedList双向链表的结构是如何构建的,同时针对其常用方法进行分析,包括get,add,remove以及常用的遍历方法,并简单的说明了它的插入、删除操作为何相对高效,而取值操作性能相对较低 LinkedList和ArrayList一样是集合List的实现类,虽然较之ArrayList,其使用场景并不多,但同样有用到的时候,那么接下来,我们来认识一下它。一. 定义一个LinkedList...原创 2020-06-12 15:40:02 · 280 阅读 · 0 评论 -
Java集合中List,Set以及Map等集合体系详解(史上最全)
转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全)概述:List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有Hashtable,LinkedHashMap,HashMap,TreeMapCollection接口下还有个Queue接口,有PriorityQueue类注意:转载 2020-06-12 15:13:39 · 222 阅读 · 0 评论 -
Intellij idea 报错:Error : java 不支持发行版本5
在Intellij idea中新建了一个Maven项目,运行时报错如下:Error : java 不支持发行版本5 本地运行用的是JDK9,测试Java的Stream操作,报错应该是项目编译配置使用的Java版本不对,需要检查一下项目及环境使用的Java编译版本配置。 ...转载 2020-06-06 11:31:14 · 252 阅读 · 0 评论 -
JDK1.8 JVM运行时数据区域概览
一、JDK1.8 JVM运行时数据区域概览这里介绍的是JDK1.8 JVM运行时内存数据区域划分。1.8同1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。二、各区域介绍1. 程序计数器每个线程一块,指向当前线程正在执行的字节码代码的行号。如果当前线程...转载 2020-03-27 08:16:02 · 291 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静...转载 2020-03-04 14:41:16 · 198 阅读 · 0 评论 -
Acwing 刷题指南
Acwing 刷题指南1. 二分LeetCode 69. Sqrt(x)LeetCode 35. Search Insert PositionLeetCode 34. Find First and Last Position of Element in Sorted ArrayLeetCode 74. Search a 2D MatrixLeetCode 153. Find Mini...原创 2020-02-12 14:41:53 · 1690 阅读 · 0 评论 -
Maven Web报错:org.apache.jasper.JasperException: Unable to compile class for JSP
Maven Web报错:org.apache.jasper.JasperException: Unable to compile class for JSP今天被这个问题弄得,拽下了一大把的头发!哭唧唧~~~遇到的问题截图:于是查找各方面的资料,发现是jar包的冲突,于是乎,修改了pom.xml。加上了,<scope>provided</scope>注意加的位置...转载 2019-12-07 10:37:07 · 332 阅读 · 0 评论 -
Collections 工具类常见方法
Collections 工具类常用方法排序查找,替换操作同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合)排序操作void reverse(List list)//反转void shuffle(List list)//随机排序void sort(List list)//按自然排序的升序排序void sort(List list, Com...原创 2019-10-12 09:15:02 · 322 阅读 · 0 评论 -
8个超实用的Java测试工具和框架
本文将为大家介绍8款超好用的Java测试工具和框架。Java入门如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runtime Environment(JRE)和JVM(Java运行时环境)。它能让你在自己的电脑上编译、运行、测试你的Java程序。此外,你还需要IDE转载 2017-03-19 00:07:46 · 1243 阅读 · 0 评论 -
jdbc连接MySQL数据库(完整文件+详细说明)
使用jdbc连接数据库: 可以直接在方法中定义url、user、psd等信息,也可以读取配置文件,但是在web项目中肯定是要使用第二种方式的,为了统一,只介绍第二种方式。 步骤 1、创建配置文件db.properties 无论是eclipse还是myeclipse,在工程下右键->new->file,以properties为后缀名就好了。 配置文件内容:#连接数据库的url...转载 2018-07-23 09:01:26 · 1059 阅读 · 0 评论 -
Java Arrays
package JavaNoteBook;import java.util.Arrays;public class JavaArrays { public static void main(String[] args) { //-----------------------------// // 记录Java中Array的定义以及方法//...原创 2018-08-27 16:11:55 · 222 阅读 · 0 评论 -
chm文件无内容显示
右击-》属性 解除锁定再次打开就可以访问了转载 2018-09-02 20:01:20 · 241 阅读 · 0 评论 -
ubuntu18.04 安装java
本人的ubuntu采用最新的18.04版本,java的安装方式与ubuntu版本无关。一、Ubuntu系统安装二、java下载1.进入官网下载页面http://www.oracle.com/technetwork/...转载 2018-09-12 22:14:48 · 938 阅读 · 0 评论 -
链表(Java)
第 3 章 链表(Java)文章目录第 3 章 链表(Java)3.1 什么是链表3.2 链表抽象数据类型3.3 为什么要用链表3.4 数组概述3.5 链表、数组和动态数组的比较3.6 单向链表3.1 什么是链表链表是一种用于存储数据集合的数据结构。链表有以下属性:相邻元素之间通过指针连接;最后一个元素的后继指针值为 NULL;在程序执行过程中,链表的长度可以增加或缩小;链表的空...原创 2019-01-10 00:40:18 · 268 阅读 · 0 评论 -
Java之Integer类
Integer类简介:⋅\cdot⋅ IntegerIntegerInteger 类是基本数据类型 int 的包装器类,是抽象类 Number 的子类,位于 java.lang 包中。⋅\cdot⋅ IntegerIntegerInteger 类在对象中包装了一个基本类型 int 的值,也就是每个 IntegerIntegerInteger 对象包含一个 int 类型的字段。在 Integer...原创 2019-03-26 14:20:23 · 232 阅读 · 0 评论 -
《剑指offer》Java
《剑指offer》Java标签(空格分隔): 算法文章目录《剑指offer》Java03. 二维数组中的查找04. 替换空格05. 从尾到头打印链表06. 重建二叉树07. 用两个栈实现队列08. 旋转数组的最小数字09. 斐波那契数列8. 跳台阶9. 变态跳台阶10. 矩形覆盖10. 二进制中1的个数11.数值的整数次方14. 调整数组顺序使奇数位于偶数前面15. 链表中倒数第k个结点16...原创 2019-05-09 15:45:48 · 640 阅读 · 0 评论 -
Java对象持久化
持久化就是将内存中的数据保存起来,使之可以长期存在。在JAVA中,我们可以把JAVA对象直接保存在文件中,在需要使用的时候,直接从文件中读取,这也是对象持久化的一种方式,在这一篇博客中,将演示两种将JAVA对象持久化到文件的方法,直接上代码:import java.beans.XMLDecoder;import java.beans.XMLEncoder;import java.io.F...原创 2018-07-19 12:14:17 · 6375 阅读 · 0 评论 -
java.lang.NullPointerException - 如何处理空指针异常
当应用程序试图null在需要对象的情况下使用时抛出。这些包括:调用null对象的实例方法。访问或修改null对象的字段。把长度null当作一个数组。像访问或修改null阵列一样访问或修改插槽。投掷null就好像它是一个Throwable 价值。应用程序应该抛出此类的实例来指示null对象的其他非法使用。 NullPointerException对象可以由虚拟机构造,就像抑制被禁用...转载 2018-07-18 17:37:35 · 707 阅读 · 0 评论 -
java实现循环链表
前面已经介绍了java实现单链表:http://www.cnblogs.com/lixiaolun/p/4643886.html其实两者的主要差别就在于如何判断是否到了链表的结尾:在单链表中while(temp.next!=null){ temp=temp.next;}在循环链表中while(temp.next!=header){ temp=temp....转载 2018-07-18 17:24:15 · 1048 阅读 · 0 评论 -
继承与组合有什么区别
组合和继承是面向对象中两种代码复用的方式。组合是指在新类里面创建原有类的对象,重复利用已有类的功能。继承是面向对象的主要特性之一,它允许设计人员根据其它类的实现来定义一个类的实现。组合和继承都允许在新的类中设置子对象(subobject),只是组合是显式的,而继承则是隐式的。组合和继承存在着对应关系:组合中的整体类和继承中的子类对应,组合中的局部类和继承中的父类对应。二者的区别在哪原创 2017-03-13 20:03:35 · 8544 阅读 · 0 评论 -
重载(overload)和覆盖(override)有什么区别(终结篇)
重载(overload)和覆盖(override)是Java多态性的不同表现方式。其中,重载是在一个类中多态性的一种表现,是指在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,是同类或者父类与子类中的横向关系;覆盖是指派生类函数覆盖基类函数。覆盖一个方法并对其重写,以达到不同的作用,是父类与子类之间的垂直关系。在使用重载(overload)时,需要注意以下几点:原创 2017-03-13 16:20:31 · 2164 阅读 · 0 评论 -
Java中final关键字的作用
final的作用随着所修饰的类型而不同final在Java中表示的意思是最终,也可以称为完结器。可以使用final关键字声明类、属性、方法,在声明时需要注意以下几点:(1)使用final声明的类不能有子类。(2)使用final声明的方法不能被子类所覆写。(3)使用final声明的变量即成为常量,常量不可以修改。具体分析: 1、final修饰类中的属性或者变量原创 2017-03-13 15:50:56 · 997 阅读 · 0 评论 -
AOP那些学术概念—通知、增强处理连接点(JoinPoint)切面(Aspect)
1、我所知道的AOP初看起来,上来就是一大堆的术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子就会让你不知所措,心想着:怪不得很多人都和我说AOP多难多难。当我看进去以后,才发现:它就是一些在Java基础上的朴实无华的应用,包括IOC(见《Spring IOC(依赖注入、控制反转)概念理解》),包括许许多多这样的名词,都是万变不离其宗而已。原创 2017-03-19 21:38:16 · 1284 阅读 · 0 评论 -
Spring IOC(依赖注入、控制反转)概念理解
假设A组件依赖B组件 1. 自己new一个。 主动 2. 找工厂去要一个。 主动。 3. 等,等容器为我们提供一个被依赖组件。 被动。传统模式下,无论是A去new一个B组件,还是通过工厂去获取B组件,都要需要A组件主动去获取被依赖的B组件。用了Spring之后, Spring容器会负责把被依赖的B组件注入到A组件中,A只要被动地等转载 2017-03-19 20:49:59 · 457 阅读 · 0 评论 -
Google Java Style Guide中文版
Google Java Style 中文版 基于官方文档2013.12.19最后一次改动。翻译人:Weir Zhang (zh.weir)旁白:水平有限,很多地方只是意译。不准确的地方,大家以原版文档为准。原版地址:http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 一、介绍转载 2017-03-18 22:53:00 · 3721 阅读 · 0 评论 -
Java性能最后一个领域:去除垃圾回收器
来自RedHat的性能和OpenJDK开发者Aleksey Shipilëv,提交了一份新的JEP草案,其内容为创建一个无操作垃圾回收器:一种实际上不进行实际内存回收的GC方式。该回收器旨在帮助JVM实现者和研究者,以及少部分无需垃圾回收的超高性能应用程序。如果这项JEP继续推进,新的GC方式将会和现有GC方式一起存在,并且通过显式激活方式使用。 垃圾回收和Java性能向来都是原创 2017-03-08 12:41:25 · 567 阅读 · 0 评论 -
深入理解进程与线程的区别(终结篇)
深入理解线程与进程的联系与区别原创 2017-02-23 14:43:22 · 1883 阅读 · 0 评论 -
Java程序员必会的Linux命令
作为一个Java开发人员,有些常用的Linux命令必须掌握。即使平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握 一些常用的Linux命令。因为很多服务器都是基于Linux系统的。所以,要和服务器机器交互,就要通过shell命令。 本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help查看帮助或者直接通过Google搜索学转载 2017-02-28 10:16:02 · 3342 阅读 · 1 评论 -
Java多线程1:进程与线程概述
进程和线程谈到多线程,就得先讲进程和线程的概念。进程进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程线程进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多子任务在运行,比如聊天线程、好友视频线程、下载文件线程等等。 为什么要使转载 2017-02-27 22:47:49 · 500 阅读 · 0 评论 -
JVM很重吗?
一种语言是轻是重,可能会影响到使用者的选型;同时,语言的轻和重有很多度量的维度。本文通过几个方面对比,看看JVM是否有想象中的那么重。如何来度量?下载包的大小?运行时占用的资源?库文件占用硬盘大小?部署成本?开发成本?这些问题可以让我们抛开一些偏见,从多个方面来度量JVM。安装成本高嘛?认为JVM重的第一个原因是前期安装成本比较高。相比于原创 2017-03-16 19:13:11 · 455 阅读 · 0 评论 -
百度-嘟嘟熊买帽子
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 这个问题是求最小K的问题的具体问题。 输入描述:首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)选好数据结构来存储数据对处理数据至关重要。输出描述:如果存在第三便宜的帽子原创 2017-06-13 16:59:23 · 555 阅读 · 0 评论 -
购物车的原理及实现.(仿京东实现原理)
2016年12月20日更新: 有很多小伙伴想要项目资料和源码, 我重新整理了一份传了上来: 链接:http://pan.baidu.com/s/1c1O5Vkk 密码:ojeb今天来开始写一下关于购物车的东西, 这里首先抛出四个问题:1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码 问:购物车商品还在吗? 2)用户登陆了转载 2017-10-13 13:58:30 · 321 阅读 · 0 评论