本文为《Java Coding Problems》读书笔记。学习语言从解决问题开始,《Java Coding Problems》一书中包含了Java编程中常遇到的一些问题。...57Working With Date And Time 58-77Type Inference 78-98Arrays, Collections, And Data Structures 99-128Java...I/O Paths, Files, Buffers, Scanning, And Formatting 129-148Java Reflection Classes, Interfaces, Constructors...书中以Java的方式解决诸多常见问题。后续文章中记录这些问题的解法,以此学习Java语言的常规技巧。...参考资料:https://learning.oreilly.com/library/view/java-coding-problems/9781789801415/。
结果确实是 0.060000000000000005 0.5800000000000001 401.49999999999994 1.2329999999999999 Java中的简单浮点数类型float...这个问题相当严重,如果你有9.999999999999元,你的计算机是不会认为你可以购买10元的商品的。 在有的编程语言中提供了专门的货币类型来处理这种情况,但是Java没有。...现在让我们看看如何解决这个问题。 四舍五入 我们的第一个反应是做四舍五入。...也不能解决这个问题: System.out.println(new java.text.DecimalFormat("0.00").format(4.025));输出是4.02 现在我们已经可以解决这个问题了...;/** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 * 确的浮点数运算,包括加减乘除和四舍五入。
局部变量,方法定义参数和异常处理器参数不会在线程之间共享,在栈内存中,不需要同步处理,因为栈内存是线程独享的,它们不会有内存可见性问题,也不受内存模型的影响。...Java线程之间的通信由Java内存模型(本文简称为JMM)控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见。...实际应用:利用软引用和弱引用缓存解决OOM问题。...它用于指示合理的应用程序不应该试图捕获的严重问题,大多数这样的错误都是异常条件。 和RuntimeException一样, 编译器也不会检查Error。...那是否有办法绕过这个问题来编程,答案就是显示地传递类型标签。
WebMvcConfigurer 四、使用Nginx配置 五、使用 @CrossOrgin 注解 Spring Cloud Gateway 跨域配置 --- 引言 我们在开发过程中经常会遇到前后端分离而导致的跨域问题...什么情况会跨域 同一协议, 如http或https 同一IP地址, 如127.0.0.1 同一端口, 如8080 以上三个条件中有一个条件不同就会产生跨域问题。...PATCH max-age: 3600 注意: 通过gateway 转发的其他项目,不要进行配置跨域配置 有时即使配置了也不会起作用,这时你可以根据浏览器控制的错误输出来查看问题...,如果提示是 response 中 header 出现了重复的 Access-Control-* 请求头,可以进行如下操作 import java.util.ArrayList; import org.springframework.cloud.gateway.filter.GatewayFilterChain
这两天出差,出发前开发同学提了一个问题,开会间隙,有了一些想法,java代码中和Oracle中均有可能出现此错误,记录于此。 一段mybatis的代码,查询一张表的数据,SQL类似如下, ?...开发库运行这段代码,正常返回,测试库运行这段代码,无记录返回的情况正常,只要有记录返回,无论有几条,均会报错,Numeric Overflow,注意这儿报的是java.sql.SQLException,...,有以下产品会出现错误, Bug 19019306 : ERROR UPDATING MEDIATOR INSTANCE: JAVA.SQL.SQLEXCEPTION: NUMERIC OVERFLOW...目前已经知道了问题,反过来看,首先程序报错Numeric Overflow,提示很清楚,就是有数据类型溢出了,但未出现ORA错误号,因此很有可能不是数据库中的问题,进一步使用SQL执行,未出现错误,说明很有可能是代码问题...我们可能经常碰见这样的问题,一条SQL,一段code,一个环境可以,另一个环境报错,我觉得首先需要考虑的,就是明确问题的范围,是SQL语句的问题,是代码问题,抽丝剥茧,大胆怀疑,细心验证,真相往往就只有一个
---- 在前后端分离开发条件下,几乎一定会遇到跨域问题。 同源策略 浏览器安全的基石是 同源策略,什么是同源策略呢? 协议相同。 域名相同。 端口相同。
参考博客:https://blog.csdn.net/sinat_32238399/article/details/80512452
日期格式化的跨年问题 通常格式化日期时,都是使用的YYYY/MM/dd来格式化日期,但是在遇到跨年日期时,就会遇到很神奇的现象,如下: 1 2 3 4 5 6 7 8 9 10 11 final...(DateTimeFormatter.java:1746) at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1720...其实关于这类格式化字符需要注意大小写的问题,比如y和Y的含义也是不一样的。...参考链接 Java YYYY/MM/dd遇到跨年日期的问题 YYYY-MM-DD 的黑锅,我们不背! Java日期时间API系列19–Jdk8,ZonedDateTime和时区转换。...【java8中的时间操作】java8中获取月的最后一天或者总天数,JDK8 LocalDate AP localdate 比较两个时间_Java 8中处理日期和时间示例 日期格式‘YYYY-MM-DD’
使用static存在什么问题? 可以用来修饰:成员变量,成员方法,代码块,内部类等。...随着类的加载而加载 优先于对象存在 被类的所有对象共享 可以通过类名调用(静态修饰的内容一般我们称其为:与类相关的,类成员) 使用static存在什么问题?...2.5、java.lang 包下为什么要设置final?...3.1、原始数据类型和引用类型局限性 原始数据类型和 Java 泛型并不能配合使用 Java 的泛型某种程度上可以算作伪泛型,它完全是一种编译期的技巧,Java 编译期会自动将类型转换为对应的特定类型...基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型在内存中的存储问题来解释一下: 在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,
1 问题 编写一个Java程序,解决以下问题: 2 方法 再导入java.util包下的Scanner类,构建Scanner对象,以便输入。...通过对问题的分析,我们可以得到,当位数为1时,其返回值为1; 当位数为2时,其返回值为1; 当位数为3时,其返回值为1,由此可得这是它们的起始值。...return f(n-1)+f(n-2); } return 2; } else return 1; } } 3 结语 针对古典问题...,首先先通过分析,可以发现此问题的突破口在三个月之后,第一个月和第二个月都是1,从第三个月开始计算第一次出生的兔子数,看出当月份为n时,兔子的对数为前两个之和,所以设对数为f(n),通过编程证明了该方法是有效的
棋盘覆盖问题(Java) 1、问题描述 2、算法设计思路 3、代码实现 4、复杂度分析 5、参考 ---- ---- 1、问题描述 在一个2k×2k个方格组成的棋盘中,若恰有一个方格与其他方格不同,...在棋盘覆盖问题中,要用下图所示的4种不同形态的L型骨牌覆盖一个给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。...2、算法设计思路 使用分治策略,可以设计出解棋盘覆盖问题的简洁算法。 当k>0时,将2k×2k棋盘分割为4个2k-1×2k-1 子棋盘,如下图(a)所示。...为了将这3个无特殊方格的子棋盘转化为特殊棋盘,可以用一个L型骨牌覆盖这3个较小棋盘的会合处,如下图(b)所示,从而将原问题转化为4个较小规模的棋盘覆盖问题。
Java使用UTF-16作为内存的字符存储格式。 UTF-8 UTF-16统一采用两个字节来表示一个字符,虽然简单方便,但会造成空间浪费。UTF-8采用变长技术,每个编码区域有不同的字码长度。...Java中需要编码的场景: I/O操作中存在编码 Reader和Writer是字符流,InputStream和OutputStream是字节流。...内存操作中存在编码 Java中提供了Charset类,该类中的encode()和decode()方法分别对应char[]到byte[]的编码和byte[]到char[]的编码: Charset charset...ByteBuffer byteBuffer = charset.encode(string); CharBuffer charBuffer = charset.decode(byteBuffer); Java
top -Hp pid1(进程id) 3、拿到需要查询的线程pid,转换成16进制 printf '%x' pid2(线程id) ==> 6a4 #6a4为输出结果 4、通过jstack讲java
八皇后问题 八皇后问题(英文:Eight queens),是由国际象棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。...问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。...计算机发明后,有多种计算机语言可以编程解决此问题。
我们来看一个简单的问题,下面的代码会打印出什么?...Java使用了基于2的补码的二进制运算,因此int类型的-1用32位补码表示就是11111...1111。
自古深情留不住,总是套路得人心 最近经历了一次惨无人道的程序员笔试,真的是“笔”试,默默地来整理一下…… 以后遇到问题要多整理…… 常见套路: 当一个变量被赋值为null的时候就被视为垃圾会被回收 当一个...常见问题: final,finally和finalize的区别 final:最终的意思,可以修饰类,成员变量,成员方法 修饰类,类不能被继承 修饰变量,变量是常量 修饰方法,方法不能被重写 finally...基础问题: 常用排序 package com.hanqi.maya.model; import java.util.Arrays; public class Arr { public static...Java的三个版本 JavaSE:Java的标准版,主要用于桌面应用程序开发。同时也是Java程序的基础。...将问题包在try中,程序可以运行,但是catch里必须有代码,不然只能是隐藏问题而不是处理异常 throws和throw的区别 throws 用在方法声明后面,跟的是异常类名 可以跟多个异常类名,用逗号隔开
主要问题 1,长生命周期对象持有短周期的引用,导致短周期对象不被回收。 2,大量的长周期对象不能回收。 例子和解决 1,大量的数据库或者文件链接 代码显示的关闭就行。
在文章《Spark Submit的ClassPath问题》中,我探讨了针对spark-submit的Jar包,如何指定外部依赖的Jar包。同样的问题在本地部署时仍然存在。...此时,运行Jar并不是通过spark-submit,而是通过java命令,例如: exec java -Xmx2000m -DMORT_HOME=$MORT_HOME -Ddata-set-parquet.path...通过查看java命令的帮助文档,我最初以为通过设置-classpath参数来指定外部依赖包就可以轻松解决。然而事情的发展并非我所愿,运行时仍然报告找不到第三方Jar包中相关类的错误。...查阅文档,发现: 当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJar.jar的内部class作为类的寻找范围。...资料还提到可以将要依赖的第三方jar包放在JVM的扩展class路径下,即{java_home}\jre\lib\ext目录下。一旦设置正确,就无需修改任何配置文件了。
req.getRequestDispatcher(PathConsts.PATH_PREFIX + PathConsts.MAIN_PAGE).forward(req, resp); } 上边的代码在执行后会报如下异常: java.lang.IllegalStateException...One of ‘{“http://java.sun.com/xml/ns/j2ee":run-as, “http://java.sun.com/xml/ns/j2ee":security-role-ref
req.getRequestDispatcher(PathConsts.PATH_PREFIX + PathConsts.MAIN_PAGE).forward(req, resp); } 上边的代码在执行后会报如下异常: 1 2 java.lang.IllegalStateException
领取专属 10元无门槛券
手把手带您无忧上云