标签: java

maven

maven 使用 pom.xml 文件声明依赖;jar 包资源使用 groupId、artifactId、version 定位。maven 下载依赖会先从本地找起,然后私服镜像,最后是 maven 官方的中央仓库。 maven 命令(maven 项目的根目录下执行)如下: mvn compile –src/main/java 编译生成 class(target 目录下) mvn test –sr

java 知识点

注解java 注解与 js 装饰器拥有相当不同的实现方式:java 有编译过程,因此可以使用语法约定注解的意义,脱离了编译过程,注解将毫无意义;js 引擎却没有对装饰器给予有效支持,因此 js 装饰器在 babel 等工具中表现为使用高阶函数封装原类或方法。java 注解本质上都是集成了 java.lang.Annotation 的接口,接口名前加 @interface 标识声明。有以下四种元注解

RMI

RMI分布式编程即当客户端调用某方法时,产生一个请求发送到服务器上,然后取回响应。RMI(远程方法调用)的实现思路植根于:在客户端和服务端均安装代理,由客户端代理将客户端方法调用转换成请求(包含服务器地址、所调用方法、传参等信息),服务端代理通过请求执行服务端方法,并向客户端发送响应。服务端接口实例(实现 Remote 接口、扩展 UnicastRemoteObject 类)须通过 Initial

我看 spring boot

why & what介于 spring 应用配置较为复杂,spring boot 就应运而生了,其目的即在于简化 spring 项目中依赖的配置流程。因此 spring boot 集成了 spring 的以下能力,或者通过定制 starter 的方式简化了以下能力的配置形式: Web Applications:spring boot 内嵌 Tomcat、Jetty、Undertow、Ne

JDBC

Java 数据库连接(JDBC)API 用于对接不同的数据库 —— 由遵守不同网络协议的数据库厂商提供第三方驱动程序,再由 Java 提供一个驱动管理器和一套 API,驱动程序就会注册到驱动管理器中,在此基础上,调用 API 即能访问驱动管理器,最后通过驱动程序与实际的数据库通信。驱动程序的实现经历过多次演进,目前以纯 Java 语言实现,它能将 JDBC 请求直接翻译成数据库相关的协议。 使用

集合

同大多数数据结构类库相同,Java 集合类库在设计上采用接口(interface)和实现(implementation)分离的模式。在强类型语言中,接口和实现的分离有利于在声明实例时切换实现类。Java 核心技术卷以先进先出队列 Queue 接口为例,既可以用循环数组 CircuralArrayQueue 形式实现,又可以用链表 LinkedListQueue 形式实现。循环数组比链表更高效,但是

枚举

Enum实现原理枚举使用 enum 关键字声明。枚举不能使用 abstract, final 修饰。除非枚举至少包含一个以类构造的枚举常量,否则枚举都是隐式 final 的。嵌套的枚举类型是隐式 static 的,这就使得枚举类型不能在类中使用 static 声明。典型的枚举声明如下(即包含类修饰符,enum 关键字,枚举标识符,由枚举常量或类语句构成的枚举体): 123public enum E

符号表与二叉查找树

符号表符号表用于存储键值对。通常符号表按功能提供了如下 API(由 API 可逐步深入到设计决策、测试用例、实现等): get: 获取指定 key 键的值。 put: 将键值对存入符号表中。 delete: 删除指定的键值对。 contains: 判断符号表中是否包含指定的键。 isEmpty: 判断符号表是否为空。 size: 获取符号表中键值对的数量。 keys: 获取符号表中所有 key

透过散列表看HashMap

散列表用于存储键值对。先举两个例子:如果使用有序数组存储键值对,那么当存在某个较大的键时,整个数组所占用的内存空间就会很大;如果使用无序数组存储键值对,那么在查找元素时就需要遍历数组项,造成了性能的低效。与这两个例子不同的是,散列表有效地平衡了时间和空间复杂度。创建散列表的流程分为: 通过散列函数将键转化为散列码,以作为数组的索引。 通过碰撞处理解决两个或多个散列码等值的情况。 散列函数制作散

HashMap中的红黑树

HashMap 预期以链表数组的形式存储数据,即以 key 键的散列码计算索引,然后将元素插入到作为数组项的链表中(每个数组项称为桶)。为了提升查询的效率,HashMap 中存在一个阈值,当桶中的元素量超过这个阈值时,桶的数据结构就会从链表转变成红黑树。与红宝书中基于 2-3 树实现的红黑树不同,HashMap 中的红黑树基于 2-3-4 树实现。补充说明的是,Java 中的 TreeMap 也是