随笔分类 - java基础
开发语言详解
摘要:普通hash Hash函数:一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。碰撞(冲突):如果两个关键字通过hash函数得到的值是一样的,就是碰撞或冲突。Hash表(散列表):根据散列函数和冲突处理将一组关键
阅读全文
摘要:1、Java代码执行流程 第一步:*.java-->*.class(编译期) 第二步:从*.class文件将其中的内容加载到内存(类加载)(运行期) 第三步:执行代码(运行期) 说明: 整个白框部分表示JVM管理的内存 包含栈帧的地方称作JVM方法栈,一个栈帧就是一个方法 在Hotspot JVM中
阅读全文
摘要:一、基本概念 接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来
阅读全文
摘要:什么是 HTTP ? 超文本传输协议(HTTP)的设计目的是保证客户端与服务器之间的通信。 HTTP 的工作方式是客户端与服务器之间的请求-应答协议。 web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。 举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应
阅读全文
摘要:Java 链表 1、什么是链表? 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。 每一个链表都包含多个节点,节点又包含两个部分: 1)一个是数据域(储存节点含有的信息) 2)一个是引用域(储存下一个节点或者上一个节点的地址) 链表的理解示意图
阅读全文
摘要:一、使用用 Groovy 的 GroovyClassLoader ,它会动态地加载一个脚本并执行它。GroovyClassLoader是一个Groovy定制的类装载器,负责解析加载Java类中用到的Groovy类。先创建一个groovy脚本,非常简单,定义一个用于计算的方法,groovy脚本如下:
阅读全文
摘要:1.使用Runtime.getRuntime()执行脚本文件 该方法可以运行含有python第三方库的程序 先建立python脚本文件 demo.py import numpy as np a = np.arange(12).reshape(3,4) print(a) java调用python程序并
阅读全文
摘要:什么是云计算分类 公有云:云服务提供商对基础设施实施维护,不需要自己维护;多租户;Pay For Use 成本较低,按需付费就像用水用电一样(阿里云、腾讯云等)私有云:自己维护云基础设施;单租户或狭义上的多租户;Pay For Cloud 成本较高,需要为整个云服务付费(VMware等)混合云:云服
阅读全文
摘要:阅读目录 一、Comparable简介 二、Comparator简介 三、Comparable和Comparator区别比较 一、Comparable简介 Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数
阅读全文
摘要:Spring事务详解 什么叫事务?关于事务,最简单最常见的例子就是取钱。ATM机取钱有两个步骤,第一步输入金额密码,银行卡扣掉1000元,第二步ATM出钞1000元,这两个步骤必须要么都执行成功,要么都不执行。如果其中一个步骤失败了,必须把整个过程回滚,取消掉所有操作,这就是事务最基本的应用,事务就
阅读全文
摘要:java提高(16) java注解 注解含义注解是JDK1.5之后才有的新特性,它相当于一种标记,在程序中加入注解就等于为程序打上某种标记,之后又通过类的反射机制来解析注解。 一、JDK自带注解 JDK1.5之后内部提供的三个注解 @Deprecated #废弃,过时。 @Override #重写、
阅读全文
摘要:HashSet 与TreeSet和LinkedHashSet的区别 今天项目开发,需要通过两个条件去查询数据库数据,同时只要满足一个条件就可以取出这个对象。所以通过取出的数据肯定会有重复,所以要去掉重复项。 如果用list集合接收两次的返回对象,那么肯定是有重复对象在list集合中,一开始我想到的是
阅读全文
摘要:TreeSet(一) 一、TreeSet定义: 与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的。 1)TreeSet类概述 使用元素的自然顺序对元素进行排序 或者根据创建 set 时提供的 Comparator 进行排序 具体取决于使用的构造方法。 2)T
阅读全文
摘要:异常 一.异常与错误的区别 再讲异常之前我们就应该要知道异常和错误的区别 Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断, 仅靠程序本身无
阅读全文
摘要:设计模式总则 一、概述 1、什么是设计模式 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 解释下: 分类编目:就是说可以找到一些特征去划分这些设计模式,从而进行分类。 代码设计经验:这句很重要,设计经验的总结,也就是说设计模式,是为了指导设计而从经验中总结出来的套路。
阅读全文
摘要:ThreadPoolExecutor 官方API解释线程池的好处: (1)通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。 (2)对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制等等。 一、Executor Executor是一个接口,跟线程池有关的基本都要跟他打交道。下面是
阅读全文
摘要:线程创建、start、run 一、创建线程方式 java创建线程的方式,主要有三种:类Thread、接口Runnable、接口Callable。 1、Thread和Runnable进行比较 他们之间的区别 1、实现Runnable的类更具有健壮性,避免了单继承的局限。 2、Runnable更容易实现
阅读全文
摘要:Map中的computeIfAbsent方法 Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以在特定需求下,让你的代码更加简洁。 一、案例说明 1、概述 在JAVA8的Map接口中,增加了一个方法computeIfAbsent,
阅读全文
摘要:guava 复写Object常用方法 Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。 这些高质量的 API 可以使你的Java代码更加优雅,更加简洁,让你工作更加轻松愉悦。 一、概
阅读全文
摘要:Lambda 一、概述 1、什么是Lambda表达式 Lambda 表达式是一种匿名函数,简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。 它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java 语言的表达能力得到了提升。 2、Lambda表达式的语法 基本语法:
阅读全文