java
文章平均质量分 86
Ian-sheng
Hac in hora, sine mora, Corde pulsum tangite
展开
-
HashMap底层实现原理, 以及hashCode() 和 equals()详解
一:HashMap底层实现原理解析我们常见的有数据结构有三种结构:1、数组结构 2、链表结构 3、哈希表结构 下面我们来看看各自的数据结构的特点:1、数组结构: 存储区间连续、内存占用严重、空间复杂度大优点:随机读取和修改效率高,原因是数组是连续的(随机访问性强,查找速度快)缺点:插入和删除数据效率低,因插入数据,这个位置后面的数据在内存中都要往后移动,且大小固定不易动态扩展。2、链表结构:存储区间离散、占用内存宽松、空间复杂度小优点:插入删除速度快,内存利用率高,没有固定大小,扩展灵活缺点:原创 2021-05-12 11:35:27 · 1381 阅读 · 0 评论 -
深入理解Java虚拟机笔记---运行时栈帧结构
栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息。在编译代码的时候,栈帧中需要多大的局部变量表,多深的操作数栈都已经完全确定了,并且写入到了方法表的Code属性原创 2021-04-27 22:19:34 · 376 阅读 · 0 评论 -
java IO体系的学习总结
1.Java Io流的概念,分类,类图。1.1 Java Io流的概念 java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象表述为“流”(stream)。通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源。stram是从起源(source)到接收的(sink)的有序数据。注:java...原创 2019-05-28 17:03:49 · 850 阅读 · 0 评论 -
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
这个报错的意思是maven需要JDK环境而不是JRE环境。网上搜了一堆都是修改eclipse的环境配置,而我用的是IDEA,不太适用,其实究其原因是JDK的环境变量配置有误当时配置时,为了图省事,没有配置以JAVA_HOME命名的环境变量,建议大家遇到这个问题老老实实按照网上教程重新配置下JDK的环境变量即可。前期麻烦后期就省事了。由于本公司电脑,个人没有管理员权限,开发起来极其蛋...原创 2019-05-23 10:12:23 · 256 阅读 · 0 评论 -
Maven之scope详解 以及test测试
scope的分类compile(编译范围)默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。test(测试范围)scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。PS: ...原创 2019-05-27 10:05:33 · 27969 阅读 · 1 评论 -
Flyway详解以及Springboot集成Flyway
Flayway是一款数据库版本控制管理工具,,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里;不仅支持Command Line和java api ,也支持Build构建工具和Spring boot,也可以在分布式环境下能够安全可靠安全地升级数据库,同时也支持失败恢复。Flyway最核心的就是用于记录所有版本演化和状态的MetaData表,Flyway首...原创 2019-05-22 16:33:10 · 1847 阅读 · 1 评论 -
SQL Server JDBC 连接:sqljdbc4.jar sqljdbc_auth.dll配置与windows方式登录
下载对应版本的JDBC Driver,解压并安装 使用System.out.println(System.getProperty("java.library.path"));查看java.library.path: 将sqljdbc_auth.dll复制到其中一个目录代码如下:需要特别注意W...原创 2019-05-22 14:00:40 · 2679 阅读 · 0 评论 -
Java文件操作大全
//1.创建文件夹 //import java.io.*; File myFolderPath = new File(str1); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception e) { Sys...原创 2019-05-24 15:05:46 · 625 阅读 · 0 评论 -
Groovy 教程-- Groovy 入门
概述Groovy 是一种基于Java平台的面向对象语言。Groovy 的语法和 Java 非常的相似,可以使用现有的 Java 库来进行 Groovy 开发。可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。用 Groovy 编写的任何内容都可以编译成标准的 Java 类文件并在 Java 代码中重用。类似地,用标准 Java 代码编写的内容也可以在 Groovy 中重用。所...转载 2019-05-08 16:17:40 · 481 阅读 · 0 评论 -
WCF:消息处理功能核心
概述WCF是一个通信框架,同时也可以将它看成是一个消息处理或者传递的基础框架,它可以接收消息、对消息做处理,或者根据客户端给定的数据构造消息并将消息发送到目标端点,在这个过程中,一切都是围绕“消息”而展开的。WCF在消息处理体系结构提供统一编程模型的同时,还允许灵活的表示数据和传递消息,本文将介绍如何配置消息支持各个SOAP和WS-Addressing版本或者不用任何SOAP和WS-Addre...转载 2019-02-20 13:39:12 · 384 阅读 · 0 评论 -
springboot之修改内置tomcat配置项
1.spring boot默认端口号是8080,如果要修改端口的话,只需要修改application.properties文件,在其中加入 例如: server.port=80812.在正常的项目中,项目路径都是localhost:8080+项目名称+相应的访问路径,在spring boot中默认并没有项目名称而是直接访问localhost:8080/访问路径,这种方式的路径格式肯定是不...原创 2019-01-15 21:26:42 · 21524 阅读 · 0 评论 -
GraphQL系统开发总结
1. 技术归纳A. 前端采用vue-apolo客户端发送fetch方式的gql请求,并与axios结合使用。通过apollo-link-http来创建httpLink,通过apollo-link-error、apollo-link来控制请求的拦截和错误处理,ApolloClient来创建请求客户端。 B. 服务端增加了基于/graphql接口的GraphQLController控制器来处理分发gq...原创 2018-03-29 11:12:50 · 1785 阅读 · 0 评论 -
RESTful接口规范
一、 URIURI规范1.不用大写;2.用中杠 - 不用下杠 _ ;3.参数列表要encode;4.URI中的名词表示资源集合,使用复数形式。5.在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词(特殊情况可以使用动词),而且所用的名词往往与数据库的表格名对应。 资源集合 vs单个资源URI表示资源的两种方式:资源集合、单个资源。资源集合: ...转载 2018-02-26 09:08:09 · 539 阅读 · 0 评论 -
解决 Mybatis 元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminat
元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminator?)"注意 "必须匹配" 四个字, 其意味着顺序很重要, 必须要一致, 需要将 resultMap 中各元素的顺序修改为和错误信息中属性出现的顺序( constructor , id result associ...原创 2018-02-14 11:07:51 · 483 阅读 · 0 评论 -
Java8初体验(二)Stream语法详解
Java8初体验(二)Stream语法详解感谢同事【天锦】的投稿。投稿请联系 tengfei@ifeve.com上篇文章Java8初体验(一)lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子。这些Stream的例子可能让你产生疑惑,本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一...转载 2018-02-12 09:06:19 · 241 阅读 · 0 评论 -
java8 :: 用法 (JDK8 双冒号用法)
JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下。代码其实很简单:以前的代码一般是如此的:1234567891011121314151617public class AcceptMethod { public static void printValur(String str){ System.out.pr...转载 2018-02-12 09:05:11 · 1558 阅读 · 0 评论