线程 方式java

线程池拒绝策略

先自定义一个线程池 @Configuration class TaskPoolConfig { //拒绝策略测试 @Bean public Executor taskExecutor1() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskE ......
线程 策略

多线程,高并发面试题 有用的地方不多 看1

1. stop() 和 suspend() 方法为何不推荐使用? 反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象 处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出 真正的问题所在。 suspend() 方法容易发生死锁。调用 suspe ......
发面 线程 试题 有用 地方

Jenkins官网实例----Build a Java app with Maven

Build a Java app with Maven 来自 <https://www.jenkins.io/doc/tutorials/build-a-java-app-with-maven/> 先创建network docker network create jenkins 运行容器jenkin ......
实例 Jenkins Build Maven Java

浅谈两种前端截图方式:Canvas截图 vs SVG截图

背景 如今很多网站都引入截图功能,可用于问题反馈、内容分享等实用需求,而前端截图也不知不觉成为了首选。今天为大家推荐两种前端截图方式,虽然有些局限,但是也能应付大部分项目需求。 Canvas截图:html2canvas SVG截图:rasterizehtml 原理 首先来谈下两种前端截图方式的原理, ......
截图 前端 方式 Canvas SVG

一个基于Java线程池管理的开源框架Hippo4j实践

如果还在为线程池而烦恼,不烦试试这个开源的线程池管理框架Hippo4j;先了解其功能和总体架构,然后分别使用docker和二进制安装hippo4j-server,接着对其支持两种运行模式hippo4j-server和以Nacos为示例hippo4j-config进行代码示例和实践,并以RocketM... ......
线程 框架 Hippo4j Hippo4 Hippo

【redis】 redis linux下安装 redis启动方式 redis典型场景 redis通用命令 数据结构和内部编码 redis字符串类型

上节回顾 # dockerfile 命令 RUN COPY ADD ENV EXPOSE WORKDIR CMD:可以用新命令覆盖的 ENTRYPOINT:不可以被覆盖 # 容器要运行,必须有个前台进程 # dockerfile部署图书管理系统项目 FROM python:3.8 MAINTAINE ......
redis 数据结构 字符串 字符 场景

Redis高级 redis介绍、redis linux下安装、redis启动方式、redis典型场景、redis通用命令、数据结构和内部编码、redis字符串类型

==redis介绍== # 特性 Redis特性(8个) # 速度快:10w ops(每秒10w读写),数据存在内存中,c语言实现,单线程模型 # 持久化:rdb和aof # 多种数据结构: 5大数据结构 BitMaps位图:布隆过滤器 本质是 字符串 HyperLogLog:超小内存唯一值计数,1 ......
redis 数据结构 字符串 字符 场景

Java作业

1.编写一个简单程序,要求数组长度为5,静态赋值10,20,30,40,50,在控制台输出该数组的值 package lll; public class lll { public static void main(String[] args) { // TODO Auto-generated met ......
Java

(之前的项目复习)我的Java项目实战--校园餐饮商户外卖系统08(优化)

开发笔记八 读写分离 问题分析 Mysql主从复制 介绍 MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库 ......
项目 商户 实战 餐饮 校园

java 为什么有抽象类和接口

1.抽象类 class Animal //创建一个动物类:父类 { String name; int age; public void cry() //动物会叫 { System.out.println("不知道怎么叫!"); //可是我们不知道它怎么叫 } } class Dog extends ......
接口 java

Java字符串

Java字符串 String的特点 程序当中所有用双引号括起来的东西都说字符串不管有没有生成String类 1. 字符串的内容永不可变(重点) 2.字符串永不可变,所以可以共享使用 3.字符串效果相当于char[]数组,但是底层原理是byte[]字节数组 创建字符串 创建字符串的3+1种方法 构造方 ......
字符串 字符 Java

坦克大战项目实践(Java)

一、设计简介 该项目是设计一个坦克大战小游戏,该游戏算不上精美,但是有始有终。有明确的游戏开始、单人模式、双人模式、游戏暂停和游戏失败等事件。设计内容包含图片双缓存技术,解决游戏屏幕闪动问题;还包含了击毁坦克的爆炸特效与子弹消失;还包含了碰撞检测,包括墙体和边界的。 二、相关工作 由于该游戏设计是实 ......
坦克 大战 项目 Java

查找消耗cpu最高的Java进程

#!/bin/bash if [ -z "$1" ]; then ### 1.先找到消耗cpu最高的Java进程 ### pid=`ps -eo pid,%cpu,cmd --sort=-%cpu | grep java | grep -v grep | head -1 | awk 'END{pri ......
进程 Java cpu

宾馆客房管理系统(Java+SQL Server)

源代码下载链接: 一、宾馆客房管理系统开发初衷 随着互联网技术的迅速发展,计算机技术的普及以及信息化时代的推波助澜,宾馆客房需求的逐渐增大,这也是挑战了宾馆客房管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的宾馆客房管理系统,提高了宾馆的工作效率,为想要入住宾馆的人提供更 ......
客房 管理系统 宾馆 Server 系统

【Spring MVC + Tomcat】Spring MVC 传统VS现代方式的启动过程对比

1 前言 这节我们来讨论下 Spring MVC 传统和现在的启动方式的不同,可能大家现在上手就是SpringBoot直接给我们内置Tomcat,我们最多也就是改改配置就完事了,我记得我上学的时候写SSM的时候,还要整理各种Jar包和配置,这节我们就来对比下两种启动方式是如何启动Spring MVC ......
Spring MVC 传统 过程 方式

ubuntu16.04系统run方式安装nvidia显卡驱动

避免sudo apt-get install nvidia-*安装方式造成登录界面循环。 1. ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。 编辑文件blacklis ......
显卡驱动 显卡 方式 ubuntu nvidia

Java数组

Java数组 相同类型数据的有序集合(每一个数据称为一个数组元素,每个数组元素可以通过一个下标来访问) 数组声明创建 声明数组 dataType[ ] arrayRefVar; 首选方法 dataType arrayRefVar[ ]; 通过new操作符来创建数组 dataType[ ] array ......
数组 Java

java查看对象占用内存的大小

1.首先引入jar包 lucene-core-4.7.2.jar <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>4.0.0</version> </dep ......
对象 大小 内存 java

通过JAVA语言如何获取淘宝/天猫搜索词推荐

Java 是一种跨平台的、面向对象的高级编程语言,主要用来进行网站后台开发和 Android APP 开发,同时它是全球最受欢迎的编程语言之一,在世界编程语言排行榜 TIOBE 中,Java 一直霸占着前三名,有好多年甚至都是获得了第一名。那么为什么Java会如此受欢迎呢? Java 是一种半编译型 ......
语言 JAVA

Java与Mysql锁相关知识总结

锁的定义 在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源。 锁的实现 锁在计算机底层的实现,依赖于CPU提供的CAS指令(compare and swsp),对于一个内存地址,会比较原值以及尝试去修改的值,通过值是否修改成功,来表示是否强占到了这个锁。 JVM中的锁 jvm中,有2个常用 ......
知识 Mysql Java

关于Java中值传递和址传递

参数传递在Java中有两种类型 值和址 其实本质都是一份拷贝 在调用函数的时候 进行压栈 传进来的参数会被开辟一份新的空间 传基本类型是把值传过去 传引用数据类型是实例指向实参 void m(int v){ //基本数据类型传值 是一份拷贝 不会影响实参 v++ } void m(int[] arr ......
中值 Java

Spring注入bean的常用的六种方式

一.通过注解注入的一般形式 Bean类 public class TestBean{ } Configuration类 @Configuration注解去标记了该类,这样标明该类是一个Spring的一个配置类,在加载配置的时候会去加载他。 @Bean的注解,标明这是一个注入Bean的方法,会将下面的 ......
常用 方式 Spring bean

JUC4_ArrayList为什么线程不安全ArrayList线程不安全的举例

Collection线程不安全的举例 前言 1、当我们执行下面语句的时候,底层进行了什么操作 new ArrayList<Integer>(); 底层创建了一个空的数组,伴随着初始值为10 当执行add方法后,如果超过了10,那么会进行扩容,扩容的大小为原值的一半,也就是5个,使用下列方法扩容 Ar ......
线程 ArrayList JUC4_ArrayList JUC4 JUC

JUC6_Java的锁Java锁之读写锁

独占锁(写锁) / 共享锁(读锁) / 互斥锁 概念 独占锁:指该锁一次只能被一个线程所持有。对ReentrantLock和Synchronized而言都是独占锁 共享锁:指该锁可以被多个线程锁持有 对ReentrantReadWriteLock其读锁是共享,其写锁是独占 写的时候只能一个人写,但是 ......
Java JUC6_Java JUC6 JUC

JUC6_Java的锁Java锁之自旋锁

Java锁之自旋锁 自旋锁:spinlock,是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU 原来提到的比较并交换,底层使用的就是自旋,自旋就是多次尝试,多次访问,不会阻塞的状态就是自旋。 优缺点 优点:循环比较获取直到 ......
Java JUC6_Java JUC6 JUC

JUC6_Java的锁Java锁之公平锁和非公平锁

Java锁之公平锁和非公平锁 概念 公平锁 是指多个线程按照申请锁的顺序来获取锁,类似于排队买饭,先来后到,先来先服务,就是公平的,也就是队列 非公平锁 是指多个线程获取锁的顺序,并不是按照申请锁的顺序,有可能申请的线程比先申请的线程优先获取锁,在高并发环境下,有可能造成优先级翻转,或者饥饿的线程( ......
Java JUC6_Java JUC6 JUC

JUC6_Java的锁Java锁之可重入锁和递归锁

可重入锁和递归锁ReentrantLock 概念 可重入锁就是递归锁 指的是同一线程外层函数获得锁之后,内层递归函数仍然能获取到该锁的代码,在同一线程在外层方法获取锁的时候,在进入内层方法会自动获取锁 也就是说:线程可以进入任何一个它已经拥有的锁所同步的代码块 ReentrantLock / Syn ......
Java JUC6_Java JUC6 JUC

JUC6_Java的锁Synchronized无法禁止指令重排却能保证有序性

为什么Synchronized无法禁止指令重排,却能保证有序性 前言 首先我们要分析下这道题,这简单的一个问题,其实里面还是包含了很多信息的,要想回答好这个问题,面试者至少要知道一下概念: Java内存模型 并发编程有序性问题 指令重排 synchronized锁 可重入锁 排它锁 as-if-se ......
有序性 Synchronized 指令 JUC6_Java JUC6

Java8新特性5_并行流

并行流与顺序流 并行流 并行流就是把一个内容分成多个数据库,并用不同的线程分别处理每个数据块的流 Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,Stream API可以声明性的通过parallel() 与 sequential() 在并行流与顺序流之间进行切换 Fork/Joi ......
特性 Java8 Java

Java8新特性1_HashMap变化

Java8新特性 主要特性 Lambda表达式 函数式接口 方法引用与构造器引用 Stream API 接口中默认方法与静态方法 新时间日期API 最大化减少空指针异常(Optional) 。。。。 HashMap1.7 在JDK1.7 到 JDK1.8的时候,对HashMap做了优化 首先JDK1 ......
特性 HashMap Java8 Java