自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 线程-安全发布对象(六)

1.发布与逃逸states被发布出去,可以进行修改了对象溢出2.安全发布对象的四种方法安全示例:单例:

2021-04-25 17:19:14 98

原创 线程-线程安全(五)

一.原子性,可见性,有序性1.如何理解线程安全问题1:代码示例:运行中未打印子线程的结果如图代码运行,主线程会修改stop的值,但是子线程不会中断,因为stop值在主线程中进行了修改,对子线程不可见问题2: 原子性问题示例代码:这个incro()对应三个指令:结果不是: 1000问题3: 有序性问题二.java如何解决可见性有序问题1.JMM2.Synchronized的作用:范围:对象锁:synchronized(this)两个线程调用同一个对象的普通

2021-04-25 17:01:25 110

原创 线程-线程的基本操作和原理(四)

一. Thread.join的使用及原理1.代码:运行结果可能为1,也可能为4,原因: t1,t2,start后来年各个线程都处于就绪状态,cpu分配时间片给两个线程的机率是随机的,线程执行的优先级相等,所以可能先执行t1,也可能先执行t22.使用thread.join这样执行的结果就会始终为43.Thread.join的原理可见调用在主线程中调用子线程的join()方法会让主线程阻塞,直到该子线程运行完,主线程才被唤醒,继续运行。在上述代码中: t1.join()执行时,主线程就不会执行

2021-04-25 14:06:43 114

原创 线程-线程的生命周期(三)

1.线程从创建到销毁,一共经历6个状态,在实际中并不一定都会经历。2.图示3.示例代码:然后可以在日志中看到各种状态:

2021-04-25 11:08:11 89

原创 线程-线程在java中的创建方式(二)

1.java中使用分三类2.Thread2.Runnable3.Callble 带返回值其中future.get()会阻塞,直到有返回值才会执行

2021-04-25 10:51:40 46

原创 线程-线程概念(一)

1.什么是线程2.进程的执行逻辑3.为什么有线程简言之:4.线程价值5.线程的应用场景6.总结

2021-04-25 10:44:34 58

原创 NIO-selector选择器(七)

1.什么是Selecto

2021-04-24 21:36:47 142

原创 NIO-SocketChannel与SockerServerChannek(六)

之前第四篇都是磁盘上的NIO,接下来是网络上的NIO服务端:客户端:让客户端连接不断,加上System.in.read():服务端仍然是阻塞的,改进:此时的服务端是,连接非阻塞了,但是IO阻塞还没解决。客户端改进:...

2021-04-24 13:20:48 83

原创 NIO-缓冲区内部细节与零拷贝原理(五)

1.Buffer的本质capacity: 初始状态: 第一次读取数据:调用flip,将读转为写调用flip position置为0,limit重置为原来的位置2.零拷贝原理1): IO通信原理2)IO流程改进:代码(此时channel也可以在直接使用):...

2021-04-24 12:54:20 55

原创 NIO-Channel和Buffer(四)

1.Channel的实现2.什么是Buffer读取案例:写:循环读写完所有数据:在这里插入图片描述

2021-04-24 11:42:53 57

原创 NIO-NIO的概述及应用(三)

1.什么是NIO2.NIO新特性3.核心组件4.demo示例:5.IO和NIO的区别,面向磁盘和面向缓存

2021-04-24 00:04:24 45

原创 NIO-5种IO模型(二)

1.阻塞模型:2.非阻塞IO3.IO复用,非阻塞虽然可以在数据未准备好的时候干其他事,但是也需要不断轮询去访问直到数据准备好,这样会带来系统资源不断消耗。IO复用则是一种改进4.mmap:5.异步IO...

2021-04-23 23:51:19 84

原创 NIO-阻塞与非阻塞(一)

通新机制:同步:异步:调用方发起请求处于的状态:阻塞: 客户在没有获得结果之前,什么都不能做非阻塞: 在获得结果之前可以做其他事

2021-04-23 23:32:57 61

原创 IO-网络IO(七)

1.socket主要分为服务端和客户端:案例1:客户端:服务端:案例二:服务端:上述需要加换行,不加则客户端还没读取完,io就关闭了客户端:Socket通信流程:2.协议分析:请求发送:3.网络io通信原理4.扩展: 上述案例二服务端只能处理处理一个连接,如果是多个,可以加一个while循环,表示可以按顺序处理多个连接,但是这样效率非常低下,加入有1000个同时连接,则可以想象时间耗时。方法中的accept表示阻塞等待。这也就是所说的BIOBIO:阻塞是阻塞acc

2021-04-23 14:22:36 65

原创 IO-对象流(六)

1.序列化与反序列化序列化演示:磁盘上user文件内容,变成了16的数据信息反序列化:序列化可以让一个对象的存活时间远远大于其在jvm中的存活时间。注意这里序列化的对象需要实现Serializable接口...

2021-04-23 13:39:30 44

原创 IO-缓冲流与字符流输入输出(五)

(一)缓冲流1.缓冲流概述:2.缓冲流是一个高级流,使用时需要套低级流。(将低级流传给高级流,在基本流的基础上增强功能)缓冲区默认是8kb演示:flush方法: 当写出的内容总大小小于缓存区大小时,不会触发写的io操作,可以加flush方法当然close方法也会触发:(二)字符流1.字节流问题当文本文件mic.txt中存在中文时,采用如下代码,则控制台会打印乱码,原因: utf-8编码中,中文占3个字节,英文占1个字节,下面是一个字节一个字节读取的。解决方式1: 一次读取多个字

2021-04-23 11:23:11 44

原创 IO-inputstream的read方法与基于内存的字节流输入输出(四)

1.流主要就是建立一个管道,让数据像水一样在里面有方向的流动,且水量的大小可以控制。演示:使用byte[] buffer时,定义每次读取3个字节,“hello world” 加上中间的空格一共是11个字节, 但实际读取会独12个, 3*4 ,结果就是 h e l l o w o r l d r ,多了一个r,先然不符合实际,所以讲读取的方法转为一下:...

2021-04-23 10:38:38 135

原创 IO-本地磁盘文件操作之File类与基于文件的字节流输入输出(三)

1.概述: File类是Java中为文件创建,删除,重命名,移动等操作设计的一个类,位于java.io包下2.File类的基本操作四个构造方法:使用:3.基于字节流操作文件(字节流可以操作图片,音频,文件等,不仅仅是文本),将磁盘上的一个图片读入并写出改进: 上述是读取的一个字节,加入有1000个字节,则需要和磁盘交互1000次,现在一次性读取多个字节,可以减少交互次数,这是一种优化。同样可以达到目的注意点: 流一定要关闭。原因: 不关闭流或造成相应读取的资源被一直占用。jdk1.7自动关

2021-04-23 10:12:10 136

原创 IO-IO流的数据来源及操作api(二)

硬盘,内存,键盘,网络1.从磁盘读取:2.从内存中读取定义的字符串str是在内存中的,将其转换为字节数组流3.键盘4.网络这个一般是指socket相关,后续会详细介绍

2021-04-23 09:39:30 65

原创 IO-Java中的IO体系(一)

1.概述: java中的I/O流操作的类很多,实际核心只有5个,File文件类,InputStream字节输入流(以内存为参照,从磁盘或网络中写入内存为输入,反之为输出),OutputStream字节输出流,Reader字符输入流,Writer字符输出流。2.分类特征: 其中字节流可以处理所有文件,范围更广,字符流只能处理文本。每种流大部分都是成对的有输出和输入。带stream的都是字节流,带reader或writer都是输出流。字节流: 操作的数据都是单元8位的字节,InputStream,Out

2021-04-23 09:31:50 57

原创 processon之删除文件

processon是一个绘制流程图,uml图等的在线网站,网址是https://www.processon.com/ ,对于有账号的普通用户来说,可以免费建立9个文件,提供协作,各种格式下载等,文件不够时,则需要删除文件。删除步骤1.找到文件点击删除2.进入回收站 再次删除才可正真删除。...

2021-01-28 10:20:39 1474

原创 flowable6.4.2流程图乱码问题之windows与linux

问题产生背景:最近甲方客户要求做一个流程执行显示图,在引入flowable后,也进行了各种相关配置恩,在windows开发环境下是没有问题的,包括流程图预览等。但是我把这个提到测试环境上测试,流程图就出现了乱码,全部是一个个的正方形小框。网上寻找lowable流程图乱码的解决方式,全部都是如下配置。。。。醉了。,其中最多的也就是加入如下配置:@Configurationpublic class FlowableConfig implements EngineConfigurationConfigur

2021-01-28 00:09:58 1698 1

原创 Flowable删表问题之table ‘activiti.act_ge_property‘ doesn‘t exist

1.问题产生的原因:由于自己采用的是mysql5.7版本且未做过多的配置,flowable自动生成的表全部是大写,个人不太习惯,就在把flowable在mysql中多对应的schema(数据库)中的表全部删除,然后在my.cfg(windows可能是my.ini)这些配置文件中加入限定表为小写的配置(在[mysqld]下加入lower_case_table_names=1,重启mysql服务)。 然后启动项目,结果出现问题:org.apache.ibatis.exceptions.Persistenc

2020-12-24 13:56:13 2147 1

原创 JVM学习 类的使用

JAVA程序对类的使用分为1)主动使用2) 被动使用主动使用被动使用

2020-06-05 16:38:15 89

原创 jvm学习 类的加载过程

一.类的加载,连接,初始化过程总共分为5大步1.加载2.连接(验证,准备,解析)3.初始化4.使用5.卸载加载: 通过类加载器(这个可以看做是一个工具),以类的全限定名(如: com.mycompany.test.MyTest MyTest是一个类,) 来获取MyTest的二进制文件(MyTest经过编译后生成的MyTest.class二进制文件)字节流。然后把这个流放入内存中。连接连接分为三个部分1) 验证1>验证二进制文件的格式是否符合Class文件格式的规范。2&gt

2020-06-05 13:31:34 88

原创 jvm学习 (二) jvm可视化工具

认识工具jconsole位于jdk bin目录下: 如图1.控制台可以直接输入启动:回车键该应用的实际jar包位于 jdk/lib/tools.jar2.点击本地连接,选择jconsole,进入简要补充: jvm一般分为5大内存区,对象在堆上产生。堆内存分为 ; eden survior01 survior02最开始对象从eden产生,所以这里演示eden区域内存变化。3.代码:package com.kdeng.practise.jvm.day02;import java.

2020-06-02 13:39:57 181

原创 jvm学习(一)初识与实践

jvm值得学习,目前周志明先生-大佬的《深入理解jvm》第三版 jdk1.8版本的 已出,这本书强烈推荐。1.jdk, jre和jvm的关系oracle官方jdk1.8的描述文档截图可见jdk(开发及运行环境)= jre+其他jre(运行环境)= java SE Api + jvm +其他所以jvm是jdk中jre的一部分目前要学习的部分就是 java virtual machine (jvm).2.环境准备:1)下载安装或使用解压版本jdk1.8,配置环境变量。2)下载安装ecli

2020-05-28 15:45:27 131

原创 mysql性能优化之基础数据类型优化(一)

本系列文章参考书籍《高性能MySQL》阿里java开发规范背景:初入java的殿堂已经一年多了,算是成为了一位初级开发工程师吧,然而成为中高级开发工程师甚至架构师,仍然需要不断的学习和进步才行。今年暂定目标是,性能优化,做阅读源码的准备,阅读部分spring源码,学习jvm并实践,对权限认证框架进行项目实践,分享学习和工作中的心得。基础数据类型优化:数据类型优化常用于建表之初一):1)尽量明确字段的数据类。比如: 日期,整数等要明确其数据类型,不能都赋予字符串类型。2)经常作为条件查询的字段尽

2020-05-27 12:17:29 99

原创 java-web应用之poi日期转换问题

**背景:**最近老是在做poi导入,导出相关的功能,期间遇到一个导入日期不能转换的问题。具体如下:需求: 将这个导入模板的数据导入到oracle数据库中。导入模板模板中的日期格式如图:可以看到,在表格中的日期格式是 yyyy年MM月这样的,二查看上述栏:发现是2016/6/1这种的。所以可以得出这个单元格是设置了日期格式的。调试过程:首先我是这样想的,使用poi进行解析然后将会获得的如2019年10月这样的字符串,然后进行截取转换为2019-10然后使用SimpleDateFormat类重新格式

2020-05-21 17:58:58 749

原创 模板引擎之thymeleaf-问题(1)

今天学习thymeleaf时碰到一个问题Error resolving template template might not exist or might not be accessible死活找不到templetes目录下的模板html文件,浏览器看不到页面首先1.排查 注解使用: controller中 返回视图时候不能在对应方法上加@ResponseBody 或在controlelr类上加@ResponseBody,以及不能在类上写@RestController完全正确2.配置文件中指

2020-05-13 00:59:31 235

原创 模板引擎之thymeleaf--常用标签使用(二)

接着上一篇继续讲:1.简单取值与el表达式测试在controller中封装一个值@Controllerpublic class ItemController { @RequestMapping("index") public String index(ModelMap modelMap){ modelMap.put("hello","hello themeleaf!"); return "index"; }}页面取值:输入一个普通标签时,在输

2020-05-12 21:07:47 304

原创 模板引擎之thymeleaf--简介与环境准备(一)

1.常见的模板引擎前端后端未分离时代:最流行的前端模板如下,常见的模板引擎分为:jsp(最常见,也是最普遍,旧的那种);beetl(国产的,听说性能效率也是最好的,远超其几个,官方是这样说的);thymeleaf(springboot官方支持的"亲儿子"),freemarker (暂时还没用过)其他:前后端分离就会上手vue这样类似的前端框架了。由于本次学习的主要目标是thymeleaf,所以会在接下来分享一些学习笔记2.themeleaf简介官方简介:Thymeleaf is a

2020-05-11 11:02:49 305

原创 oracle入门基础(4)函数详解

链接: https://www.cnblogs.com/lxl57610/p/7442130.html

2020-04-15 16:05:39 80

原创 oracle入门基础(3) 简单的sql及一些注意事项

步入正式的环节:说明: oracle中sql不区分大小写,包括登录的用户名,密码都是不区分的。0.mysql与oracle数据类型对比:其增删改查大多数都和mysql类似1.建表create table users( ID number(4) primary key, NAME varchar(10), SEX char(2), ADDR varchar2(20)...

2020-04-15 15:41:36 113

原创 oracle入门基础(2)sql developer

说明一下,这边使用的数据库连接工具是sql developer,以前使用的是navicat12 来连接的mysql,本来也想直接用它来连接oracel的,但是同事说navicat有一些缺陷比如数据显示等,所以最终使用sql developer而且这个是官方支持的,相当于其亲儿子吧,哈哈开始操作:...

2020-04-15 13:56:23 546

原创 oracle入门基础(1)数据库与数据库管理系统

说明: 文章部分内容来源于blibli 的动力节点视频教程。以下是一些个人体会和实践内容。数据库与数据库管理系统平时开发的时候,一些不是很专业的人员把mysq,oracle等都称作数据库,模糊了系统的概念,其更规范一些的称呼是:数据库管理系统,在数据库管理系统里面建立的数据的集合是才是数据库。以下是一些摘抄自网上的内容,个人感觉比较专业:1.数据库指的是一些数据的集合。2.数据库管理系统...

2020-04-15 10:33:46 230

原创 oracle之导入sql(大文件)

最近公司开始上手oracle数据库了,作为一个只会使用mysql的感到一丝窃喜,多会一些东西,以后的路也好走一些。废话不多说,开始填坑。数据库要求,导入一个文件 如图:sql.sql文件这折算下来150MB (158465/1024),本以为是一个小case。打开oracle sql developer ,1.直接点击导入 :重点来了: 没有为sql类型注册的读进程报错了,网上搜索...

2020-04-13 16:11:51 3273

原创 java高级基础之-泛型

Java泛型generics是JDK5中引入的一个新特性,泛型提供了编译时类型安全监测机制。该机制允许 我们在编译时监测到非法的数据结构 优势1.编译器检查 2.减少错误类型转换 本质:类型参数化最佳实践代码地址: https://gitee.com/dengdengkai/reflection_basis.git一.泛型类、接口一) 语法 class 类名<泛型标识 ,泛型标识...

2020-03-27 18:16:25 134

原创 Java基础/内部类

原地址:https://s2.uczzd.cn/webview/news?app=uc-iflow&aid=8050077437924933506&cid=100&zzd_from=uc-iflow&uc_param_str=dndsfrvesvntnwpfgic内部类分为四种:非静态内部类、静态内部类、匿名内部类、本地类。一、非静态内部类非静态内部类 Ba...

2020-03-27 17:56:48 208

原创 mysql函数之FIND_IN_SET()的应用

一.怎么说哪,这个函数比较好玩。重点是逗号听网上的人员说,这个函数是经过特殊优化的,比较快。现在简单的来说一下,这个函数怎么使用,此处分两种 方式讲解,看一下就会。原表:在这里插入图片描述1)select * from test_newest where FIND_IN_SET(str,"a,sc,cac")结果:此处时间说明:上述是,FIND_IN_SET(数据库表字段,以逗号分隔...

2020-03-27 16:09:56 133

java常用23中设计模式

总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。

2018-10-25

空空如也

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

TA关注的人

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