Java 核心知识
文章平均质量分 82
2.wa
https://review-notes.top 技术博客
展开
-
Java 核心知识-专栏文章目录汇总
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人技术博客 Java 核心知识 Java 核心知识-基础篇Java 深入理解内部类的作用Java 核心知识-集合Java 哈希碰撞实战- HashMap 原理...原创 2020-01-17 15:38:41 · 1009 阅读 · 0 评论 -
Java 集合体系接口概览
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 文章目录1. Iterable 接口是干什么用的?2. 集合体系接口关系概览2.1 Queue2.2 List2.3 Set2.4 Map1. Iterable 接口是干什么用的?J...原创 2020-02-25 18:18:48 · 696 阅读 · 0 评论 -
Java 从字节码的角度谈代码优化的假象
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 文章目录个人想法for 里面外面声明对象问题个人想法总结此文章源于以前对代码格式书写的误解。for 里面外面声明对象问题// 方式一:Object 声明在 for 外部publ...原创 2020-02-19 22:45:51 · 413 阅读 · 0 评论 -
Java 从底层实现角度理解 java 中的 null 是什么
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、Oracle 官方对 null 的描述The Kinds of Types and Values 中说明,在实践中,程序员可以忽略 null 类型,而只是假装 null 只是可以是...原创 2020-01-20 17:11:19 · 1030 阅读 · 0 评论 -
Java for、foreach 循环底层实现原理,以及如何判断集合支持 foreach 循环
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、前言本节内容主要研究 for、foreach 循环的底层实现原理,再比较两种实现方式的性能。最后通过 RandomAccess 接口说明 JDK 让我们怎么去识别集合是否支持随机访...原创 2020-01-20 15:47:17 · 5019 阅读 · 0 评论 -
Java 可变长参数的使用及特性
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 [[toc]]一、可变长参数的定义使用 类型... 名称 定义为可变长参数(Varargs),一个方法只能有一个可变长参数并且必须是方法最后一个参数。void method(Str...原创 2020-01-19 11:25:12 · 831 阅读 · 0 评论 -
Java 通过字节码分析自动装箱拆箱的过程
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、为什么要自动装箱拆箱基础数据类型不是对象的,或者说基础数据类型不是 Object 的子类。所以不支持基础数据类型与 Object 之间的强制转型。JDK 5 后出现了泛型,但是泛...原创 2020-01-18 18:54:22 · 413 阅读 · 0 评论 -
Java 从字节码本质上分析 值传递引用传递,纠正大部分人的错误理解
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、关于值传递引用传递的结论全网流传的绝大多数文章都是在研究值传递引用传递的过程。并且一致认为是值传递,但是证明的过程没有充分的理由。虽然最终大部分人“证明”是值传递,那么为什么是值...原创 2020-01-18 16:53:12 · 423 阅读 · 0 评论 -
Java 反射调用静态方法
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、使用 java.lang.reflect 包的 Method#invoke 调用关键代码:Object invoke = method.invoke(null, Object......原创 2020-01-17 15:40:42 · 5590 阅读 · 0 评论 -
Google Guava 工具集__3__ Ordering犀利的比较器 Object方法
Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。 本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例。Ordering只是需要依赖于一个比较器(例如,Collections.max)的原创 2014-08-27 23:40:58 · 1970 阅读 · 0 评论 -
Google Guava 工具集__2__Cache 缓存使用
范例01LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()02 .maximumSize(1000)03 .expireAfterWrite(10, TimeU原创 2014-08-27 14:20:20 · 2617 阅读 · 0 评论 -
Google Guava 工具集__1__Optional对象设计 使用和避免 Null
/** * 在Java世界里,解决空引用问题常见的一种办法是,使用Null Object模式。 * 这样的话,在“没有什么”的情况下,就返回Null Object,客户端代码就不用判断是否为空了。 * 但是,这种做法也有一些问题。 * 首先,我们肯定要为Null Object编写代码,而且,如果我们想大规模应用这个模式,我们要为几乎每个类编写Null Object。 *原创 2014-08-26 21:33:10 · 2357 阅读 · 0 评论 -
Google Guava 工具集简介-使用
转:http://macrochen.iteye.com/blog/737058参考: http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports-part-1/ (2,3,4)http://blog.publicobject.com 更多转载 2014-03-12 17:22:08 · 1204 阅读 · 0 评论 -
Apache Commons工具集简介-使用
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。我选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,我只是做了一个汇总整理。一、Commons BeanUtilshttp://jakarta.apache.org/commons/beanutils/index.html说明:针对Bean的一个工具集。由于Bean往往是有一堆转载 2014-03-12 17:17:56 · 1019 阅读 · 0 评论 -
Joda-Time 工具集简介-使用
任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。现在来看看 Joda Time,一个面向 Java™ 平台的易于使用的开源时间/日期库。正如您在本文中了解的那样,Joda-Time 轻松化解了处理日期和时间的痛苦和繁琐。在编写企业应用程序时,我常常需要处理日期。并且在我的最转载 2014-03-12 17:15:15 · 1297 阅读 · 0 评论 -
Java 深入理解内部类的作用
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 一、内部类是什么把类定义在另一个类的内部,该类就被称为「内部类」。内部类又根据定义的位置、类的修饰词不同分为:成员内部类静态内部类局部内部类匿名内部类二、内部类种类术...原创 2020-01-14 14:06:25 · 416 阅读 · 0 评论 -
哈希碰撞实战- HashMap 原理
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。Java 核心知识专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java 核心知识 HashMap基于 jdk1.8 讲解分析。本篇不涉及太多源码讲解,重点为采用哈希碰撞实战分析处理过程。如果对红黑树转换为单链表感兴趣,可以修改实战代码进行 remove 操作观察处...原创 2020-01-02 18:47:24 · 1026 阅读 · 2 评论 -
深入JAVA之 java 生成目录树工具类 v1
目录树生成工具 {@linkplain #setDeep(int) 设置查询目录深度} {@linkplain #setFileFilter(FileFilter)} 设置查询文件筛选过滤器} {@linkplain #showLength()} 显示文件大小内容} {@linkplain #showModify() 显示文件修改时间内容} {@linkplain #show原创 2016-10-21 10:12:06 · 3833 阅读 · 2 评论 -
MyEclipse-Intellij IDEA 导入 JDK源码方法
很多朋友遇到过这样的问题:开发过程中会经常查看所引用的类(接口或方法)的源码,但是往往在查看JDK中的类(接口或方法)时出现提示页面“Source not found”,这是因为Eclipse默认设定的自带的JDK是没有源src的,那么如何引入JDK和框架的源码呢? 这里介绍两个设置方法:(查看Spring、Hibernate、Struts等框架的源码需要下载他们的源文件,设置方法转载 2014-03-03 14:38:35 · 6268 阅读 · 2 评论 -
用缓冲技术提高JSP应用的性能和稳定性
一、概述在Web应用中,有些报表的生成可能需要数据库花很长时间才能计算出来;有的网站提供天气信息,它需要访问远程服务器进行SOAP调用才能得到温度信息。所有这一切都属于复杂信息的例子。在Web页面中加入过多的复杂信息可能导致Web服务器、数据库服务器负荷过重。JSP代码块缓冲为开发者带来了随意地增加各种复杂信息的自由。JSP能够在标记库内封装和运行复杂的Java代码,它使得JSP页转载 2014-02-21 09:01:32 · 849 阅读 · 0 评论 -
谈谈WEB开发中的苦大难字符集问题
记得刚做javaweb开发的时候被这个编码问题搞得晕头转向,经常稀里糊涂的编码正常了一会编码又乱了。那个时候迫于项目进度大多都是知其然不知其所以然。后来有时间就把整个体系搞了个遍,终于摸通了来龙去脉。在C++的CGI开发时大家喜欢用latin,这个属于字节方式的编码格式,存储mysql节约空间,而C++也是比较容易控制到byte级别的语言。所以经过框架封装基本也问题不大。在Ja转载 2014-02-21 08:57:32 · 809 阅读 · 0 评论 -
Web.xml过滤器配置及执行顺序概念
第一个过滤器@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {Boolean b1 = false;if (b1 = true)原创 2014-02-21 08:53:13 · 8740 阅读 · 7 评论 -
POI HSSFCellStyle 设置 Excel 单元格样式
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:先获取工作薄对象:HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet();HSSFCellStyle setBorder = wb.createCellStyle();一、设置背景色:setBo原创 2014-02-20 19:10:09 · 9241 阅读 · 0 评论 -
Log4j的配置属性概念
1、 Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要下载和了解更详细的内容,还是访问其官方网站吧: http://jakarta.apache.org/log4j 。2、Log4j的概念 Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Lo原创 2014-02-20 19:09:31 · 1225 阅读 · 0 评论 -
log4j配置详解
#配置日志输出的最低级别,日志输出的目的地 log4j.rootLogger=debug,A1,A2,A3log4j.additivity.org.apache=false:表示Logger不会在父Logger的appender里输出,默认为true。level :设定日志记录的最低级别,可设的值有OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级原创 2014-02-20 19:07:39 · 1275 阅读 · 0 评论 -
JAVA 编码之 ASCII、Unicode、GBK和UTF-8字符编码的区别联系
编码的发展 开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端、打印机遇上约定好的这些字节被传过来时,就要做一些约定的动作。遇上0×10, 终端就换行,遇上0×07, 终端就向人们嘟嘟叫,例好遇上0x1b, 打印机就打印反白的字,或者终端就用彩色显示字母。他们看到这样很好,于是就把这些0原创 2014-09-26 22:26:53 · 5979 阅读 · 0 评论 -
com.typesafe Config java 工具包封装,前缀变量,读取多环境配置路径文件
com.typesafe.Config java 工具包封装,前缀变量,读取多环境配置路径文件GitHub-官方源码 ,Maven 引入包<dependency> <groupId>com.typesafe</groupId> <artifactId>config</artifactId&...原创 2019-04-10 18:19:01 · 2106 阅读 · 0 评论 -
slf4j接口统一日志打印接口定义 Loggable
Loggable.java 类功能声明该类仅支持 org.slf4j 相关依赖该类实现功能类似 org.apache.spark.internal.Logging.scala初始化 Logger 过程可能存在逻辑漏洞,根据实际使用场景进行定制化扩展初始化方法需要进行日志打印类实现Loggable接口即可,默认情况无需重写该类中 logXX 方法LoggableHelper.java...原创 2019-04-23 10:14:14 · 930 阅读 · 0 评论 -
透析Java本质-谈类型转换的神秘
package com.java.essence_36;/** * Created by lw on 14-5-18. * * 类型转换的神秘 */class Int2Byte { int i = 10; byte b = 1; char c = 1; short s = 1; //隐式的进行类型转换 float f = i;原创 2014-05-18 15:31:25 · 927 阅读 · 0 评论 -
日期操作UTIL记录
JAVA String time = "2013-5-29";SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");// 字符转日期Date date = format.parse(time);// 日期转字符String str = format.format(date);// 测试此日期是否在指原创 2014-02-21 08:58:33 · 1110 阅读 · 0 评论 -
透析Java本质-类的初始化顺序
代码:package com.java.essence_36;/** * Created by lw on 14-5-19. * * Class到底怎么初始化,测试内容已打乱顺序 * * 1.先执行静态,按照静态语句块或者静态变量的顺序执行 * 2.执行main * 3.非静态变量的初始化,按声明顺序执行 * 4.构造代码块 * 5.构造方法 * ---------原创 2014-05-19 16:58:35 · 2368 阅读 · 0 评论 -
try{}catch{}finally{} 语句块中返回值顺序,Java 值传递引用传递的区别
先看ji'ge原创 2014-09-04 00:22:47 · 1786 阅读 · 0 评论 -
Java I/O流概念分析整理
Java中的流,可以从不同的角度进行分类。 按照数:输入流和输出流。按照处理数据单位不同可以分为:字节流和字符流。按照实现功能不同可以分为:节点流和处理流。AD:51CTO学院:IT精品课程在线看!Java中的流,可以从不同的角度进行分类。按照数:输入流和输出流。按照处理数据单位不同可以分为:字节流和字符流。按照实现功能不同可以分为:节点转载 2014-03-17 22:28:18 · 809 阅读 · 0 评论 -
JAVA程序运行的内存分析JDK7.0堆栈分析局部变量new出来的对象
内存中的栈的特点:1. 栈的每个线程私有,不能实现线程间的共享!2. java局部变量放置于栈中。3. java栈是由系统自动分配,速度快!栈是一个连续的内存空间!内存中的堆:1. 堆用来放置new出来的对象!2. 堆是一个不连续的内存空间,分配灵活,但是速度慢!内存中的方法区(也是堆):1.转载 2014-03-03 11:01:25 · 2178 阅读 · 0 评论 -
JAVA获取当前的系统环境
System.getProperties().getProperty("os.name");System.getProperties().getProperty("xxxx")xxxx可以为如下键!返回结果!键 相关值的描述java.versionJava 运行时环境版本java.vendorJava 运行时环境供应商java.原创 2014-02-24 14:42:30 · 1637 阅读 · 0 评论 -
java执行shell命令或者脚本,返回结果到程序
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;public class ShellForJava { //执行shell命令 public stati原创 2014-02-24 14:44:40 · 2150 阅读 · 0 评论 -
Class.getResourceAsStream和ClassLoader.getResourceAsStream
Class.getResourceAsStream和ClassLoader.getResourceAsStream 两个都可以用于从 classpath 里面进行资源读取, classpath包含classpath中的路径和classpath中的jar。 两个方法的区别是资源的定义不同, 一个主要用于相对与一个object取资源,而另一个用于取相对于classpath的原创 2014-02-21 09:04:58 · 704 阅读 · 0 评论 -
java.math.BigDecimal类的用法
在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类。这两个类用于高精度计 算,其中BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类。下边我们介绍BigDecimal类: BigDecimal的实现利用到了BigInteger,不同的是BigDecimal加入了小数的概念。一般的flo原创 2014-02-21 09:02:18 · 862 阅读 · 0 评论 -
10个有关String的面试问题
本文由 ImportNew - 唐小娟 翻译自 Programcreek。如需转载本文,请先参见文章末尾处的转载要求。ImportNew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的 Java开发 小组。参与方式请查看小组简介。下面是面试中最容易问到的有关String的问题。1. 如何比较两个字符串?使用“==”还是equals()方法?简单来讲,“==”转载 2014-02-22 12:00:55 · 966 阅读 · 0 评论 -
JAVA操作properties文件
java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。一、properties文件test.properties------------------------原创 2014-02-21 09:04:17 · 882 阅读 · 0 评论