随笔分类 - Java
Java相关的东西放在这个分类,基本上是只针对Java这个语言的语法,IED,工具等信息
摘要:序: 1.如果开发人员不了解虚拟机的一些技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。 第一部分:走近JAVA: 1.虚拟机发展历史 2.自己编译JDK,断点调试运行程序 第二部分:自动内存管理机制 1.程序计数器:字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字
阅读全文
摘要:1.Java SE 5.0中增加泛型机制的主要原因是为了满足在1999年制定的最早的Java规范需求之一(JSR 14)。 2.使用泛型机制编写的程序代码要比那些杂乱的使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。 3.类型参数的魅力在于:使得程序具有更好的可读性和安全
阅读全文
摘要:最近在读jackson源码的时候发现有段代码返回类型写的是<T> T,而我自己一般写的是Object。上网搜了下这个语法糖,在stackoverflow上找到一个比较简单易懂的解释,搬运过来(https://stackoverflow.com/questions/5207115/java-gener
阅读全文
摘要:在使用system.in运行上述代码时,控制台的光标会一直停留在输入的状态,而不是像普通的程序一样,执行完,就退出。这是为什么么呢? 这就涉及到IO inputStream outputStream 的原理。InputStream OutputStream 和他们的缓冲器。 都相当于一条管道。 Bu
阅读全文
摘要:前言:为了更好的以“实践”巩固“学习”,利用空余时间,打造一个属于自己的项目 项目目标: 1.将学习的知识用项目实践,在实践过程中去领悟新的知识 2.高度自由,根据不同时期的学习目标,融入项目中去用代码实践(设计模式、算法、数据结构、多线程) 3.重构、重构、再重构,采用敏捷开发,不断升级和维护项目
阅读全文
摘要:HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找
阅读全文
摘要:1.class的执行在Sun JDK中有解释执行和编译为机器码执行两种方式,其中编译为机器码又分为client和server两种模式 2.Java编码编译的三个步骤:分析和输入到符号表(Parse and Enter)、注解处理(Annotation Processing)、语义分析和生成class
阅读全文
摘要:前言:JShell是java 9的新特性之一,由于在之前学校java8的lambda表达式的时候,就希望有这么一个可以交互的界面来快速响应编写的代码。刚好java9出来了,就对它把玩起来了... 内容: 1.按tab可以自动补全 2.按"/"换行 3./id输入/list后,返回对应的行 命令: 启
阅读全文
摘要:标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改 关键字 Java 浮点数 精确计算 问题的提出:如果我们编译运行下面这个程序会看到什么?public class Test{ public static void main(String args[]){ System.out.p
阅读全文
摘要:错误示例: Result: Sat Sep 30 11:18:24 CST 2017 Sun Sep 10 18:15:37 CST 2017 代码说明:上面代码的目的是计算一个月后的日期,从结果发现明显是错误的(回到上个月去了) 原因分析:30* 1000*60*60*24 ,这个表达式,本意是为
阅读全文
摘要:不严谨的写法,可能会报错:in (),这种情况不符合SQL的语法,导致程序报错。 如果简单只做非空判断,这样也有可能会有问题:本来in一个空列表,应该是没有数据才对,却变成了获取全部数据! 所以一个比较周全的方法是: 如上,加2个if判断,如果为空则永远让语句查询不到数据
阅读全文
摘要:有用的笔记: 1.如果需要传递函数到方法内,简单的可以使用function函数(只支持一个入参),复杂的可以通过@FunctionalInterface自定义函数式接口来实现。 个人感悟: 1.lambda表达式,补充了JAVA在面向对象之外,面向过程的一面。在写面向过程代码的时候更方面了,甚至可以
阅读全文
摘要:背景知识: 如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值。如果在函数中改变了副本的值不会改变原始的值. 如果参数类型是引用类型,那么传过来的就是这个参数的引用,这个引用存放的是参数的对象地址。如果在函数中没有改变这个参数的引用地址,而是改变了地址中的 值,那么在
阅读全文
摘要:常用方式 代码如下: public Map<Long, String> getIdNameMap(List<Account> accounts) { return accounts.stream().collect(Collectors.toMap(Account::getId, Account::
阅读全文
摘要:trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1、 select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length
阅读全文
摘要:关于动态SQL里的条件查询(if test): 1.lombok插件和mybatis插件在有些变量名下会冲突,比如一个变量为rType的字段,lombok插件认为应该是getRType,但是mybatis和idea则会认为是getrType。不同的命名规范导致互相解析的时候就会找不到对应的get方法
阅读全文
摘要:1.values()方法返回枚举所有实例的一个数组,调用这个数组的length方法,可以得到这个枚举对象中实例的个数 2.枚举类的每个实例,其实都是static的,可以通过static方法直接调用,而不用实例化 3.复写value()方法。根据某个值,获取对应的枚举实例:
阅读全文
摘要:1.forEach(),遍历数据结构中的元素,括号内可以带一个闭包的方法 2.双冒号用法:forEach(this::doSchedule),如果运行环境是闭包,java允许使用双冒号的写法来直接调用类的方法来使用,而不需要实例化 3.stream:一种声明的方式处理数据。可以充分利用多核架构而无需
阅读全文
摘要:好处: 1.可以直接使用switch 2.可以实现toString()方法 笔记: 1.枚举类头部定义的成员变量,可以看做是枚举类的一个实例
阅读全文
摘要:最近在针对微信公众号做一些接口的开发,开发完成后发布到服务器上的时候,却发现用公司的线上的服务器地址,去配置微信的URL(服务器地址)一直提示"token验证失败"。由于之前在本地日常环境开发时一直是正常的,放到线上却不行,还一度以为是微信那边屏蔽了我们服务器的地址。 后来反复研究,终于从阿里云的一
阅读全文

浙公网安备 33010602011771号