自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Java Enum 使用

Enum使用public enum PickListStatusEnum { CREATED(0, "待拣货"), PENDING(1, "拣货中"), COMPLETED(2, "已完成"), PARTIAL_DELIVERY(3, "部分出库"), ALL_DELIVERY(4, "全部出库"), ; PickListStatusEnum(Integer index, String value) { this.index = index; this.value = value;

2022-05-16 14:19:02 125

原创 Java Comparator比较器

Java 对象自定义排序在java中,如果要对集合对象或数组对象进行排序,需要实现Comparator接口。public class StepComparator implements Comparator<Step>{ /** * 如果o1小于o2,返回一个负数;如果o1大于o2,返回一个正数;如果他们相等,则返回0; */ @Override public int compare(Step o1, Step o2) { Date acceptTim

2022-05-16 14:11:31 2559

原创 Java8 Stream

Java8 Stream()一、stream介绍stream操作符分为两类:中间操作符终止操作符二、中间操作符对于数据流来说,中间操作符在执行定制处理程序后,数据流依然可以传递给下一级的操作符。 Stream map(Function<? super T, ? extends R> mapper);转换操作符,将T类型转换成R类型,这里默认提供了转int,long,double的操作符。flatmap(flatmapToInt, flatmapToLong, flatm

2022-02-08 16:16:41 238

原创 二、深入了解NIO

深入了解NIO同步异步:消息的通信方式是同步的还是异步的阻塞非阻塞:调用者在拿得到被调用者返回结果之前的状态NIO 从JDK1.4 提出的,本意是New IO(相对于传统IO),它的出现为了弥补IO的不足, 提供了更高效的方式,提高服务端处理的性能。NIO(相同点:数据源)不同点(通信方式不一样)本地磁盘网络(Select/poll)多路复用,提升服务端处理连接数量(不会阻塞)。NIO的新特性:NIO的所有操作一定是基于缓冲区的(面向缓冲区)通道(Channel):

2022-01-18 17:32:30 531

原创 一、初步认识IO流

I/O流I/O 实际上是input和output,也就是输入和输出。而流其实是一种抽象 的概念,它表示的是数据的无结构化传递在Java中I/O流操作的类很多,但是核心体系实际上就只有File、 InputStream、OutputStream、Reader、Writer。字节流:操作的数据单元是8位的字节。InputStream、OutputStream 作为抽象基类。字符流:操作的数据单元是字符。以Writer、Reader作为抽象基类。(utf8中:一个中文字符有3个字节,一个英文字符对

2022-01-12 08:26:32 224

原创 五、线程池

线程池提前创建好若干个线程放在一个容器中。如果有任务需要处理,则将任务 直接分配给线程池中的线程来执行,任务处理完以后这个线程不会被销毁, 而是等待后续分配任务一下4个线程,其实都是ThreadPoolExecutor的实现类。newFixedThreadPool创建一个固定数量的线程池newSingleThreadExecutor创建只有一个线程的线程池newCachedThreadPool创建一个可以根据实际情况调整的线程池newScheduledThre

2022-01-09 14:15:58 165

原创 四、J.U.C核心之AQS-重入锁

J.U.C核心之AQS(ReentrantLock)J.U.C:Java.util.concurrent工具包AQS: AbstractQueuedSynchronizer一个持有锁的线程,在释放锁之前,如果再次访问加了该同步锁的其他方法, 这个线程不需要再次争抢锁,只需要记录重入次数重入锁可以解决死锁的问题。一、ReentrantLock实现原理重入锁 -> 互斥锁与Synchronized区别:需要手动加锁解锁。二、锁的设计思想(如果我们自己去实现)一定会设计

2022-01-08 23:08:40 323

原创 三、多线程中如何安全发布对象

多线程中如何安全发布对象一、final域对于final域,编译器和处理器要遵守两个重排序规则。在构造函数内对一个final域的写入与随后把这个被构造对象的引用赋值给一 个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操 作之间不能重排序。这两个规则,可以防止指令重排序,来解决可见性问题。1 写final域的重排序规则i的值可能等于0,但j的值一定等于2写普通变量i的操作,被编译器重排序到构造函数之外。

2022-01-08 21:58:12 2341

原创 二、线程的安全性分析

线程的安全性分析一、并发编程问题的源头可见性,由多核cpu缓存导致的,每个cpu访问各自的缓存,不同cpu缓存中的数据不可见。(缓存用于提高I/O存储速度)原子性,线程切换导致的,Java中一条代码对应底层多条代码(在多条代码的执行过程中,线程切换了。)。有序性,编译器编译代码时会改变代码的顺序(单线程没有什么影响,多线程影响比较大)1. 可见性问题多核cpu访问各自缓存所导致的不同cpu在执行线程时,cpu访问的数据是各自cpu中的缓存导致下图中:线程A对于变量X的操作,对于线程B不

2022-01-08 21:33:22 287

原创 一、线程的基本认识

线程的基本认识线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中, 是进程中的实际运作单位.为什么要使用线程?在一个应用进程中,会存在多个同时执行的任务,如果其中一个任务 被阻塞。将会引起不依赖该任务的任务也被阻塞。通过对不同任务创 建不同的线程去处理,可以提升程序处理的实时性。线程的特点:一个线程只能启动一次,结束后不能再重启。即一个线程只能调用一次start()方法一个线程对应一个栈特点:异步并行一、Java中使用多线程的方式继承Thread类

2022-01-08 21:11:41 155

原创 Java(集合、泛型、反射、注解)

Java(集合、泛型、反射、注解)1.集合,数据的存储2.泛型,参数化类型3.反射,反向追溯4.注解,框架中简化操作一.数据结构1.数组Char[] cs = new Char[]{'G','U','P','A','O'}; 赋值,相当于初始化了大小。Char[] cs1 = new Char[5];cs1[0] = 'G';....特点:1.内存地址连续,使用之前必须要指定数组长度2.可以通过下标访问的方式访问成员,随机查询效率高3.增删操作会给系统带来性能消耗[保证数

2022-01-08 15:39:27 506

原创 Docker实际案例

Docker发布案例一、最常用使用说明1. 拉取镜像:// 方法一:从远程仓库拉取docker pull 镜像名称:镜像版本docker pull mysql:8.0.23// 方法二:镜像linux系统上传后在导入docker load < 镜像名称docker load < rabbitmq.tar.gz2. 创建运行守护式容器(容器后台自动运行)docker run -di --name=容器的名称 镜像的名称2.1 安装MySQl数据库Docker会为每一个

2021-12-23 21:35:22 2876

原创 Docker基础

Docker一、Docker介绍1. 什么是DockerDocker是轻量级的虚拟机产品,我们在使用Docker的时候,它并不会为每个虚拟化实例(容器) 创建完整的虚拟硬件环境 ,而是为每个实例,虚拟化少量的硬件环境(例如网卡)。这些虚拟化实例直接共享使用Linux系统的CPU、内存和硬盘资源。因此说,采用Docker的Linux主机,可以轻松创建几十个容器。所有的Docker容器都是建立在Linux系统之上的,在Linux环境中安装Docker程序。Docker 是一个容器技术,用于解决环境

2021-12-23 17:03:34 624

原创 Linux

Linux一、Linux的基本概述本章以CentOS 7作为讲解1. Linux系统的安装以VisualBox为例1.1 安装的前提条件:在主板BIOS上面开启CPU虚拟化目的:开启虚拟化之后,才能安装Docker1.2 虚拟机的网络虚拟机默认网络模式NAT:即虚拟机和Windows公用同一个IP地址,但Windows不可以在网卡中设置多个IP地址。网络模式改成桥接模式:虚拟机会使用虚拟的网卡上网,虚拟机会使用一个独立的IP。1.3 将Linux虚拟机网址设置成静态IP进

2021-12-22 22:09:15 177

原创 Java-动态代理

动态代理

2020-12-14 14:53:49 111

原创 Java以及Sql语句中常见的日期处理

Sql中对日期的处理(Sqlserver)为例日期处理相关方法

2020-02-20 19:48:08 1298

原创 H5C3全屏案例

H5C3全屏案例

2020-01-29 18:54:23 187

原创 easyExcel excel导入导出

easyExcel

2019-11-22 10:51:44 857

原创 Mybatis02

Mybatis02mybatis的crud(基于代理dao的方式)增删改查mybatis中参数深入以及结果集的深入mybatis中的配置(主配置文件:SqlMapConfig.xml)properties 标签typeAliases 标签mapper 标签...

2019-10-13 20:26:25 141

原创 Angular8 环境搭建

Angular 环境搭建无论使用什么前端框架,都必然使用到NodeJS工具,Angular也不例外,Angular采用的是“全家桶”式的设计思路,因此@angular/cli脚手架工具集成了日常开发需要使用到的所有NodeJS模块,使用@angular/cli可以大幅降低搭建开发环境的难度。安装@angular/cli脚手架工具在安装@angular/cli之前,首先要安装相关的依赖环境...

2019-09-07 22:44:09 1901

原创 Mysql,分组数据(group、having),过滤

分组数据(GROUP,HAVING)分组允许把数据分为多个逻辑组,以便对每个组进行聚集计算。WHERE和HAVING的区别where在数据分组前进行过滤,having在数据分组后进行过滤。where排除的行不包括在分组中子查询嵌套在其他查询中的查询,是多个查询的结合。使用子查询创建计算字段显示customers表中每个客户的订单总数。SELECT &nb...

2019-03-23 16:46:09 571

原创 Mysql,数据库,函数的使用。

计算字段例:物品订单表-物品的价格和数量,需要返回物品的总价,总价就是需要计算的返回字段,返回字段名,自定义。计算字段:6计算可以是算术计算,也可以是函数计算。下面的例子是算术计算。SELECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prod_id,

2019-03-19 21:23:20 257

原创 数据库,where,数据过滤。

where子句数据过滤简单的增删该查并不涉及数据的过滤insert into 表名update 表名 set 字段 where …select * from 表名delete from 表名 where id = 1;1、where 子句操作符...

2019-03-16 14:08:57 1593

原创 Mysql数据库简要介绍

数据库介绍1、关系型数据库:经过数学论证,可以将现实生活中的各种关系,保存到数据库中,这种数据库称为关系型数据库。关系型数据库以表的形式保存数据之间的关系。2、非关系型数据库:主要为了解决特定的应用场景。如:高缓存,高并发等,以redis为例,redis是以键值对的形式保存数据。数据库是通过(DBMS)创建和操作的容器。数据库版本(Mysql为例)版本4:InnoDB,增加事务的处理,并...

2019-03-15 21:19:31 619

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除