Java 线程相关总结

一、线程的生命周期1.五种状态:新建状态、就绪状态、运行状态、阻塞状态、消亡状态2.就绪状态的线程表示有权利去获取CPU的时间片,CPU时间片是执行权,当线程拿到CPU时间片之后...

2021-03-07

Java 自定义线程池和线程总数控制操作

1 概述池化是常见的思想,线程池是非常典型的池化的实现,《Java并发编程实战》也大篇幅去讲解了Java中的线程池。本文实现一个简单的线程池。2 核心类【1】接口定义public inte...

2021-03-07

SpringBean依赖和三级缓存的案例讲解

spring中的bean依赖有大体上可以分为两类,共3中形式,下面简单介绍一下。第一类是构造方法中的循环依赖,这种会报错@Servicepublic class ServiceA { private ServiceB servic...

2021-03-07

Java8优雅的字符串拼接工具类StringJoiner实例代码

StringJoiner是Java8新出的用于处理字符串拼接的工具类,可以让你的代码看起来更优雅,不拉跨。假设现在遍历一个字符串集合,需求是每个元素按照 “.” 分开。 String a = "w",...

2021-03-07

Java异常处理实例详解

1. 异常例子class TestTryCatch { public static void main(String[] args){ int arr[] = new int[5]; arr[7] = 10; System.out.println("end!!!"); }}输出:(越界)Exceptio...

2021-03-07

java数组元素的引用实例讲解

对于数组来说,我们想要对其中的一个元素进行引用,那就离不开new的使用。大家在学习new的时候,一般是以新建和初始化的身份出现的。如果是用在数组的引用上,那么会以运算符的方式...

2021-03-07

java中封装JDBC工具类的实例分析

对于能够重复使用的代码,我们最好的方法是对它们进行封装,然后在下次使用的使用就可以直接调用了。本篇所要提到的是JDBC工具类,相信大家在学习java时都接触过。那么对于封装它...

2021-03-07

Java CAS操作与Unsafe类详解

一、复习
计算机内存模型,synchronized和volatile关键字简介二、两者对比
sychronized和volatile都解决了内存可见性问题
不同点:
(1)前者是独占锁,并且存在者上下文切换的开销以...

2021-03-07

Java 集合的Contains和Remove方法

一、包含与删除两种方法解析1.boolean contains(Object o);判断集合中是否包含某个元素。package com.bjpowernode.java_learning;import java.util.*;​public class...

2021-03-07

解决IDEA克隆代码后在右下角没有git分支的问题

解决办法:1.VCS--->Enable Version Control Integration2.选择要关联的版本工具补充:git clone 指定分支和切换分支git clone 指定分支:git clone -b 分支名称 项目地址假设分...

2021-03-07

Java发起http请求的完整步骤记录

前言
在未来做项目中,一些功能模块可能会采用不同的语言进行编写。这就需要http请求进行模块的调用。那么下面,我将以Java为例,详细说明如何发起http请求。一、GET与POST
GET和...

2021-03-07

Java实现2048小游戏(可直接运行)

运行效果:1.项目结构2.代码BaseData接口package com.hsy.game;import java.awt.*;public interface BaseData { Font topicFont = new Font("微软雅黑", Font.BOLD, 50); Fon...

2021-03-07

Java算法之数组冒泡排序代码实例讲解

冒泡排序是数组查找算法中最为简单的算法冒泡排序原理:
假设一个数组长度为k(最高索引k-1),遍历前k - 1个(最高索引k-2)元素,若数组中的元素a[i]都与相邻的下一个元素a[i+1]进...

2021-03-07

深入理解spring事务

事务介绍一个事务要么同时成功,要么同时失败特性 Atomic原子性 事务是由一个或多个活动组成的一个工作单元。原子性确保事务中的所有操作全部发生或全部不发生 Consistent...

2021-03-07

logback.xml动态配置程序路径的操作

1.普通java程序如下配置的logback.xml<&#63;xml version="1.0" encoding="UTF-8"&#63;><configuration> <property name="LOGS_HOME" value="/opt/program/app/logback-de...

2021-03-07

Java 如何使用JDBC连接数据库

一、使用JDBC连接数据库
1.使用JDBC-ODBC桥驱动程序连接数据库
基本步骤:
(1)加载并注册数据库驱动
(2)通过DriverManager获取数据库连接
(3)通过Connection对象获取Statement对象...

2021-03-07

教你如何监控 Java 线程池运行状态的操作(必看)

之前写过一篇 Java 线程池的使用介绍文章《线程池全面解析》,全面介绍了什么是线程池、线程池核心类、线程池工作流程、线程池分类、拒绝策略、及如何提交与关闭线程池等。但...

2021-03-07

SpringBoot 设置传入参数非必要的操作

我就废话不多说了,大家还是直接看代码吧~设置参数是否为必要参数@RequestParam(required = false) 补充:SpringBoot 开发案例之参数传递的正确姿势前言开发这么多年,肯定还有不...

2021-03-07

Java8中forEach语句循环一个List和Map

在这篇文章中,我将向您展示如何用新的Java 8 forEach语句循环一个List和Map。1、forEach 和 Map
1.1、常规循环Map常用的方法。Map<String ,Integer> items = new HashMap<>(...

2021-03-07

Java编写超时工具类实例讲解

我们在开发过程中,在进行时间操作时,如果在规定的时间内完成处理的话,有可能会回到正确的结果。否则,就会被视为超时任务。此时,我们不再等待(不再执行)的时间操作,直接向调用者传...

2021-03-07

Java(JDK/Tomcat/Maven)运行环境配置及工具(idea/eclipse)安装详细教程

Java(计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。...

2021-03-07

解决Java Redis删除HashMap中的key踩到的坑

现象Java使用Redis删除HashMap中的key时,取出对应的HashMap后通过Java中HashMap的remove方法移除key然后重新调用redis的Hmset方法将覆盖无效示例代码//通过key取出对应的Ha...

2021-03-07

jstack+jdb命令查看线程及死锁堆栈信息的实例

如果程序挂死,有时使用jstack查看进程中线程信息时,需要添加上-F参数,此时如果有死锁信息,则可能不会打印出死锁堆栈信息,使用jdb则可以查看当前死锁线程的运行堆栈。如下模拟一...

2021-03-07

Java 数组的两种初始化方式

一、数组1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首...

2021-03-07

浅谈springMVC中controller的几种返回类型

Controller方法的返回值可以有以下几种:1、返回ModelAndView返回ModelAndView时最常见的一种返回结果。需要在方法结束的时候定义一个ModelAndView对象,并对Model和View分别进...

2021-03-07

聊聊Spring循环依赖三级缓存是否可以减少为二级缓存的情况

基于Spring-5.1.5.RELEASE问题都知道Spring通过三级缓存来解决循环依赖的问题。但是是不是必须三级缓存才能解决,二级缓存不能解决吗?要分析是不是可以去掉其中一级缓存,就先过...

2021-03-07

Java JDBC自定义封装工具类的步骤和完整代码

封装JDBC工具类的作用可以优化代码,提高开发效率步骤
① 创建配置文件(config.properties),用于存放注册驱动和连接数据库时所需要的参数值② 自定义一个类(JDBCUtils.java)③...

2021-03-07

Java 基于AQS实现自定义同步器的示例

一、AQS-条件变量的支持
在如下代码中,当另外一个线程调用条件变量的signal方法的时候(必须先调用锁的lock方法获取锁),在内部会把条件队列里面队头的一个线程节点从条件队列里...

2021-03-07

Springboot返回的json屏蔽某些属性的操作

entity上增加@JsonIgnoreProperties注解,标记需要忽略的属性,支持多个@Entity@JsonIgnoreProperties(value={"status","updateTime"})public class GoldSell implements Seria...

2021-03-07

如何修改logback.xml配置文件在resource以外的位置

因为spring搭建的web项目打包时默认将resource文件夹下的文件一起打包,但是我们又想在打包后修改某些配置这里以我遇到的logback.xml配置更改默认路径来看根据LoggerFactory....

2021-03-07

java高级应用:线程池的全面讲解(干货)

什么是线程池?很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用。线程池...

2021-03-07

多线程_解决Runnable接口无start()方法的情况

为什么需要定一个类去实现Runnable接口呢?继承Thread类和实现Runnable接口有啥区别呢?实现Runnable接口,避免了继承Thread类的单继承局限性。覆盖Runnable接口中的run方法,将线...

2021-03-07

java swing实现简单的五子棋游戏

用java swing写的一个简单的五子棋游戏。下面是Main.java。package com.crossing.main;import com.crossing.view.GameWindow;public class Main { /** * @param args */ pu...

2021-03-07

关于Springboot | @RequestBody 接收到的参数对象属性为空的问题

背景今天在调试项目的时候遇到一个坑,用Postman发送一个post请求,在Springboot项目使用@RequestBody接收时参数总是报不存在,但是多次检查postman上的请求格式以及项目代码都没...

2021-03-07

Java List的sort()方法改写compare()实现升序,降序,倒序的案例

本文旨在通过重写Comparator接口的compare()方法实现对List的升序、降序、倒序排序。首先明确一点:compare(Integer o1, Integer o2){}中,o1代表的是List容器中的后一个元素,o2...

2021-03-07

Springboot-注解-操作日志的实现方式

此组件解决的问题是:「谁」在「什么时间」对「什么」做了「什么事」本组件目前针对 Spring-boot 做了 Autoconfig,如果是 SpringMVC,也可自己在 xml 初始化 bean使用方式基本使...

2021-03-07

JAVA | Guava EventBus 使用 发布/订阅模式的步骤

前言
EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现。观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用...

2021-03-07

利用stream sorted进行降序排序

根据value值的大小进行降序排序,并进行截取。public static void main(String[] args) { List<Map<String, Object>> list = Lists.newArrayList(); Map<String, Object> m...

2021-03-07

解决springboot遇到autowire注入为null的问题

这个问题困扰了很久,有些类不是controller在使用autowired注入的类显示为空,找到网上的方法是在类初始化时主动注入被Autowired的类,如下图这样的方法是可行的,最后引用时使用上...

2021-03-07

springboot2.X整合prometheus监控的实例讲解

springboot2.x暴露健康状况通过prometheus监控加入依赖 <!--prometheus监控 https://prometheus.io/docs/introduction/overview/--> <dependency> <groupId>org.springfram...

2021-03-07

详解Java中两种分页遍历的使用姿势

在日常开发中,分页遍历迭代的场景可以说非常普遍了,比如扫表,每次捞100条数据,然后遍历这100条数据,依次执行某个业务逻辑;这100条执行完毕之后,再加载下一百条数据,直到扫描完毕
那...

2021-03-07

springboot-jpa的实现操作

JPA全称为Java Persistence API(Java持久层API),它是Sun公司在JavaEE 5中提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具,来管理Java应用中的关系数据,JPA...

2021-03-07

spring boot使用logback日志级别打印控制操作

因为公司业务需要,需要把性能日志和业务日志分开打印,用elk收集处理,所以需要对不同的业务的日志,打印到不同文件。使用的是spring boot自带的logback。首先在yml文件配置logbac...

2021-03-07

从零开始学springboot整合feign跨服务调用的方法

介绍微服务横行的互联网世界, 跨服务调用显得很平凡, 我们除了采用传统的http方式接口调用, 有没有更为优雅方便的方法呢&#63;答案是肯定的,feign就提供了轻便的方式!如果你...

2021-03-07

深入理解Java线程池从设计思想到源码解读

线程池:从设计思想到源码解析 前言初识线程池线程池优势线程池设计思路 深入线程池构造方法任务队列拒绝策略线程池状态初始化&容量调整&关闭 使用线程池ThreadPoolExecutorE...

2021-03-07

使用spring boot开发时java对象和Json对象转换的问题

将java对象转换为json对象,市面上有很多第三方jar包,如下:jackson(最常用)<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><depend...

2021-03-07

Java语言实现简单的酒店前台管理小功能(实例代码)

笔者是一名刚上路的小萌新,有什么问题希望大家可以指正!以下为题目:
为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。
1、该系统的用户是:酒店前台。...

2021-03-07

java使用ArrayList实现斗地主(无序版)

本文实例为大家分享了java使用ArrayList实现斗地主的具体代码,供大家参考,具体内容如下案例介绍按照斗地主的规则,完成洗牌发牌的动作。 具体规则:使用54张牌打乱顺序,三个玩家...

2021-03-07

详解Maven JAR包冲突问题排查及解决方案

前言
写这篇文章的初衷是因为今天在使用mvn dependency:tree命令时,突然想起一年前面试阿里的一道面试题。面试题是说假设线上发生JAR包冲突,应该怎么排查?我那时候的回答是IDE...

2021-03-07

SpringMVC异步处理的 5 种方式示例详解

前段时间研究了下 diamond 的原理,其中有个重要的知识点是长连接的实现,用到了 servlet 的异步处理。异步处理最大的好处是可以提高并发量,不阻塞当前线程。其实 Spring MVC 也...

2021-03-07
返回顶部
顶部