
Java Language
文章平均质量分 54
码农UP2U
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《Java 核心技术卷1 基础知识》第 4 章 对象与类
面向对象程序设计(object-oriented programming, OOP)面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。传统的结构化程序设计通过设计一系列的过程(即算法)来求解问题。一旦确定了这些过程,就要开始考虑存储数据的适当方式。这就是 Pascal 语言的设计者 Niklaus Wirth 将其著作命名为《算法 + 数据结构 = 程序》的原因。在 Wirth 的这个书名中,算法是第一位的,数据结构是第二位的,这就明确地表述了程序员的工作方式。原创 2023-01-01 21:36:27 · 753 阅读 · 0 评论 -
《Java 核心技术卷1 基础知识》第三章 Java 的基本程序设计结构 笔记
曾经有人说,作为Java程序员如果没有卷过这本书,就算不上是真正的Java程序员,那么我就也来卷卷它吧。下面是我的读书摘录笔记。FirstSamplepublic class FirstSample{public static void main(String[] args){System.out.println("We will ot use 'Hello, World!'");}}Java 区分大小写关键字 public 称为访问修饰符(access modifier),用于控制程序的其他部分对这段代码原创 2022-12-04 22:11:49 · 1515 阅读 · 0 评论 -
《Java 核心技术卷1 基础知识》第二章 Java 程序设计环境 笔记
曾经有人说,作为Java程序员如果没有卷过这本书,就算不上是真正的Java程序员,那么我就也来卷卷它吧。下面是我的读书摘录笔记。原创 2022-11-20 20:41:26 · 506 阅读 · 0 评论 -
《Java 核心技术卷1 基础知识》第一章 Java程序设计概述 笔记
现在的即时编译器已经非常出色,可以与传统编译器现媲美,而且在某些情况下甚至超越了传统编译器,原因是它们有更多的可用信息。Java 是强类型的,编译器能捕获类型滥用导致的很多错误。编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有 Java 运行时系统,这些编译后的代码可以在许多处理器上运行。不同的厂商会选择不同的中央处理器(CPU),因此很重要的一点是这种语言不应与任何特定的体系结构绑定。不过,像 Gosling 在专访中谈到:“毕竟,语言只是实现目标的工具,而不是目标本身”。原创 2022-11-18 23:21:56 · 747 阅读 · 0 评论 -
SpringBoot在IDEA中同一个项目用不同端口启动
比如我们有一个 Test 项目,默认的端口是 8080,那么用 IDEA 可以启动它,但是再想启动它时貌似 IDEA 就没有办法了。比如,我们想测试 Nginx 的负载均衡,再比如我们想测试 OpenFeign 的负载均衡。添加后显示为 Unnamed,此时我们可以重命名,这里我们重命名为 TestApplication2,如下图。这样就可以点击 OK 按钮, 在工具栏的配置处可以看到有两个项目了,如下图。其实,IDEA 可以通过简单的配置来解决这样的问题,而且也非常的方便。原创 2022-11-04 22:15:15 · 9082 阅读 · 0 评论 -
利用 AOP 记录接口日志
那这样的话,我们可以在每个调用接口地址的前后使用输出日志的方式来记录,就可以得到调用接口的入参和接口的返回值,从而有利于我们以后的调试了。我们可以使用 SLF4J 或者 LogBack 等日志框架,在调用接口时来输出一下入参和返回值,大致方法是在调用接口前调用 logger.info 输出入参,然后调用接口后再次调用 logger.info 输出返回值。在我们的后端项目中有很多要调用第三方接口的地方,而调用接口就免不了会因为传递给接口的参数有问题报错,或者对接口的返回值处理不全导致报错或后续的流程有问题。原创 2022-09-06 21:24:52 · 1543 阅读 · 2 评论 -
合理设置 HashMap 初始值大小
HashMap初始化容量设置原创 2022-06-07 11:29:45 · 8106 阅读 · 7 评论 -
多线程 | FutureTask 执行流程
在 Java 中可以用来创建线程的方式很多,比如由 Java 提供的 Thread、Runnable 等。本文章来介绍使用 FutureTask 创建线程,以及其流程。Thread 和 Runnable 的问题 众所周知,使用 Thread、Runnable 创建线程是非常方便的,只要实现 线程的 run 方法即可。但是通过 Thread、Runnable 实现 run 方法创建的线程是无法获取返回结果的,原因是线程方法 run 本身是没有返回值的。但是在很多场景中...原创 2022-05-02 10:25:56 · 1170 阅读 · 0 评论 -
Java开发手册黄山版新增规约摘录
在 2020 年 8 月 3 日 推出的《Java 开发手册嵩山版》后历经了 18 个月阿里又推出了《Java 开发手册黄山版》。想必每个 Java 程序员应该都会关注阿里推出的《Java 开发手册》,个人觉得这份开发手册短小精干,非常实用。在整个手册中可以逐步地学到知识(手册背不下来,只能逐步的吸收,并尽量付诸实践),也可以从知识的表面理解一些更深层的思想。其实之前我做 PHP 的时候,就对这份手册非常的喜欢。因此手册有更新,我把更新的规约摘录在这里,方便阅读,方便学习。 ...原创 2022-03-28 20:00:46 · 1554 阅读 · 0 评论 -
Unable to translate SQLException with Error code ‘0‘, will now try the fallback translator
Unable to translate SQLException with Error code '0', will now try the fallback translator发生了这个报错,原因是 jdbc read only,因为在 Service 上增加了:@Transaction(readOnly = true)而在更新方法没有增加让只读为 false...原创 2022-02-10 22:47:28 · 4980 阅读 · 0 评论 -
Servlet 的继承关系
javax.servlet.Servlet --> javax.servlet.GenericServlet --> javax.servlet.HttpServlet原创 2022-02-06 21:29:20 · 1148 阅读 · 0 评论 -
多线程笔记 | Future 接口功能
Future 接口提供三大功能(1)能够取消异步执行中的任务(2)判断异步任务是否执行完成(3)获取异步任务完成后的执行结果原创 2022-01-14 23:18:40 · 286 阅读 · 0 评论 -
多线程笔记 | 比对 Thread 和 Runnable
(1)继承 Thread 类实现多线程能更好地做到多个线程并发地完成各自的任务,访问各自的数据资源(2)通过实现 Runnable 接口实现多线程能更好地做到多个线程并发地完成同一个任务,访问同一份数据资源。多个线程的代码逻辑可以方便地访问和处理同一个共享数据资源,这样可以将线程逻辑和业务数据进行有效的分离,更好地体现了面向对象的设计思想(3)通过实现 Runnable 接口实现多线程时,如果数据资源存在多线程共享的情况,那么数据共享资源需要使用原子类型,或者需要进行线程的同步控制,以保证对共享数据原创 2022-01-13 23:48:18 · 257 阅读 · 0 评论 -
多线程笔记 | 线程的六种状态
线程的六种状态public enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED;}原创 2022-01-12 22:08:42 · 210 阅读 · 0 评论 -
多线程笔记 | 线程调度模型
线程调度模型分为两种:1.分时调度模型2.抢占式调度模型原创 2022-01-11 22:32:14 · 411 阅读 · 0 评论 -
多线程笔记 | Runnable 创建线程的优缺点
通过实现 Runnable 接口的方式创建线程目标类有以下缺点(1)不是线程类,而是线程的 target 执行目标类(2)不能直接访问 Thread 的实例方法,必须通过 Thread.currentThread() 获取当前线程实例,才能访问和控制当前线程通过实现 Runnable 接口的方式创建线程目标类有以下优点(1)避免由于 Java 单继承带来的局限性(2)逻辑和数据更好分离。通过实现 Runnable 接口的方法创建多线程更加适合同一个资源被多段业务逻辑并行处理的场景。在同一原创 2022-01-10 19:54:03 · 1238 阅读 · 0 评论 -
多线程笔记 | 创建线程的几种方法
创建线程的几种方法:1.Thread2.Runnable3.Callable 和 FutureTask4.Executors原创 2022-01-09 21:14:38 · 318 阅读 · 0 评论 -
多线程笔记 | 通过匿名类创建 Runnable 线程
书上说,执行一次性的线程,可以使用匿名的 Runnable 实例,但是,不知何时使用一次性的线程呢?public class CreateDemo2New{ public static final int MAX_TURN = 5; static int threadNo = 1; public static void main(String[] args) { Thread thread = null; // 使...原创 2022-01-08 17:54:05 · 763 阅读 · 0 评论 -
多线程笔记 | Thread 类
Thread 类位于 java.lang 包中1. 线程ID使用 getId 方法获取线程的 ID2.线程名称通过 getName 方法获取线程的名称通过 构造方法 或 setName 方法设置线程名称3.线程优先级通过 getPriority 获取线程的优先级通过 setPriority 设置线程的优先级4.线程的状态通过 getState 方法获取线程的状态5.线程的启动通过 start 方法启动线程6.获取当前线程的信息通过 currentThr原创 2022-01-07 21:56:48 · 963 阅读 · 0 评论 -
++ 运算符线程安全否?
写个简单的例子public class TestThread implements Runnable { public static int count = 0; @Override public void run() { for (int i = 0; i < 100_0000; i++) { count ++; } System.out.println("end..."); }原创 2022-01-06 22:16:03 · 317 阅读 · 0 评论 -
Java 类的 Linking 和 Initializing 简单笔记
Java 类的生命周期分为 5 个阶段,分别是 Loading(加载)、Linking(连接)、Initializing(初始化)、Using(使用) 和 Unloading(卸载)。其中 Linking 阶段又分为 Verification(验证)、Preparation(准备) 和 Resolution(解析) 三个部分。 大致情况如下图所示。 一般所说的类加载指的是 Loading、Linking 和 Initializing 这几个阶段。其...原创 2021-12-11 19:08:04 · 782 阅读 · 0 评论 -
Type mismatch Can‘t assign java.math.BigDecimal to java.lang.Double
在数据库中通过 sum 查询出来的数值,进行赋值时会进行报错MyBatis 的 XML 文件类似这样select sum(xxx) as xxx, sum(yyy) as yyy from ttt t<where> ……</where>查询结果是一条记录,我使用 HashMap 进行存放,Dao 层定义类似这样HashMap<String, Double> getXXXXX(HashMap map);调用时是这样HashMap&l原创 2021-12-09 21:44:53 · 1919 阅读 · 0 评论 -
查看Java命令行初始化堆和最大堆空间的大小
通过 -XX:+PrintCommandLineFlags 参数可以查看 Java 命令行初始堆大小以及最大堆大小:java -XX:+PrintCommandLineFlags -version-XX:InitialHeapSize=197070528 -XX:MaxHeapSize=3153128448 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:-UseLargePa原创 2021-12-05 18:30:58 · 1487 阅读 · 0 评论 -
BCryptPasswordEncoder的使用及原理
在 Spring Security 中有一个加密的类 BCryptPasswordEncoder ,它的使用非常的简单而且也比较有趣。让我们来看看它的使用。BCryptPasswordEncoder 的使用 首先创建一个 SpringBoot 的项目,在创建项目的时候添加 Spring Security 的依赖。然后我们添加一个测试类,写如下的代码:final private String password = "123456";@Testpublic v......原创 2021-12-04 18:58:06 · 24382 阅读 · 7 评论 -
Spring 拦截器流程及多个拦截器的顺序
拦截器是 Spring MVC 中的组件,它可以在进入请求方法前做一些操作,也可以在请求方法后和渲染视图后做一些事情。拦截器的定义 SpringMVC 的拦截器只需要实现 HandlerInterceptor 接口,并进行配置即可。HandlerInterceptor 接口的定义如下:public interface HandlerInterceptor { default boolean preHandle(HttpServletRequest r...原创 2021-11-28 19:56:14 · 2010 阅读 · 0 评论 -
面试题 | 一道有趣的 Java 基础题
问题 在一个 Java 群里有位群友分享了一道关于 Java 的题目,问代码是否抛异常。代码如下:public class Hello { static String a, b; public static void main(String[] argc) { a = a + b; System.out.println(a); }} 对于该问题,我只知道是不会抛出异常的,但是对于输出的结果我认为是空字符串。不...原创 2021-11-26 07:46:47 · 463 阅读 · 0 评论 -
大数据 | Java 操作 HDFS 常用 API
目录一、回顾常用的命令二、引入依赖三、文件列表四、创建目录五、文件的创建六、文件内容的输出七、删除文件八、读取文件/目录的元数据九、上传本地文件到 HDFS十、下载 HDFS 文件到本地十一、总结 上篇文章介绍了关于 HDFS 的常用命令,其常用的命令都有相应的 API,用命令可以完成的功能,使用 Java API 也可以完成。本文介绍关于 HDFS 常用的 Java API。一、回顾常用的命令 在上篇文章中整...原创 2021-11-25 19:59:08 · 2465 阅读 · 0 评论 -
多线程 | Thread 和 Runnable 执行流程的差异
目录一、查看源码二、实例分析三、总结上图来自网络一、查看源码 在 Java 中创建自定义线程通常有两种方法,一种方法是继承 Thread 类,另外一种方法是实现 Runnable 接口。 无论是使用继承 Thread 类 的方式,还是 实现 Runnable 接口 的方式,本质上是没有差别的。因为 Thread 本身也是实现了 Runnable 接口的。查看 Thread 类的定义,定义如下:class Thread imple...原创 2021-11-24 17:25:19 · 685 阅读 · 0 评论 -
面试题 | 一个公家单位的面试
01.多线程和单线程的区别和联系02.如何制定多个线程的执行顺序03.线程和进程的区别04.多线程产生死锁的 4 个必要条件05.sleep() 和 wait(n)、wait() 的区别06.synchronized 关键字07.volatile 关键字08.ThreadLocal(线程局部变量)关键字09.Atomic 关键字10.线程池有了解吗11.JDK 中常用的包有哪些12.JDK、JRE 和 JVM 的联系和区别...原创 2021-11-01 13:54:31 · 181 阅读 · 0 评论 -
CentOS 下安装 JDK 8
1.卸载系统自带的 JDK$ rpm -qa | grep javajava-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64python-javapackages-3.4.1-11.el7.noarchtzdata-java-2020a-1.el7.noarchjava-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64java-1.8.0-openjdk-1.8.0.262.b10原创 2021-10-04 16:23:20 · 754 阅读 · 0 评论 -
使用 stream 从 List 对象中获取某列数据
在 JDK 8 中增加了 stream 的特性,使用非常的方便。这里,介绍通过 stream 从 List 中获取某列数据。List<Student> list = new ArrayList<>();list.add(new Student(1L, "张三", 1));list.add(new Student(2L, "李四", 2));list.add(new Student(3L, "王五", 3));System.out.println(li...原创 2021-08-19 23:40:32 · 14064 阅读 · 0 评论