
java
文章平均质量分 86
关于java的分类
摩羯的成长期
我愿世界以黑白,不愿爱之人,受苦。
我愿世界以孤独,不愿思之人,思重。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java锁的深度实现理解
越学到后面发现操作系统,底层原理息息相关。这篇文章需要你对有所理解。1、操作系统基本常识1、操作系统(os)2、jvm和os的交互2.1 交互图1、操作系统(os)操作系统结构图:(待补充)2、jvm和os的交互2.1 交互图jvm对操作系统而言,jvm就是os中的一个进程,这个进程中有多线程需要cpu调度、上下文切换,也有I/O流操作需要操作系统等。1、kernel百度百科实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之原创 2021-06-17 01:07:09 · 696 阅读 · 0 评论 -
微信公众号接入
很久没来。5个多月了。换了工作比较忙。还是立志写一份老太太、老爷爷都能看懂的文章。1、基本的东西,请先看个官网。必要条件:1、你开通了微信公众号功能。我们作为二次开发,你只需要关注你要的东西就行。简单总结一句话,你要做的:就是给微信开放接口,让他能把请求转发给你,你再做处理。相关maven依赖在最底下基本常识:往最底下滑,有个开发-基本配置。上面除了二维码,其他的马赛克就是你需要重点关注的东西。先说几个注意事项:1、这里可以下载demo,里面有很多版本,java、php等。而不是只是php的原创 2021-03-02 20:38:50 · 1831 阅读 · 0 评论 -
IO底层概念理解
Kernel一般指实时操作系统。jvm到cpu、硬盘需要系统调用。这个东西原来这么底层。有时间必须好好研究下。IO太重要了。下图的磁盘IO解释:jvm进程中运行着java线程,写和读是逆过程。以写为列子,jvm写入程序缓冲区,通过flush冲刷,如果你不使用flush,那么数据将停在系统buffer中,只有冲刷后才会写入硬盘。因此这是两次拷贝。那么我们如何高效的写入内存变得很重。BIO (Blocking I/O):同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。这里使用那个经典的原创 2020-11-01 21:40:07 · 524 阅读 · 0 评论 -
springboot+redis+angular+zookeeper+kafka等实战
很遗憾,看了很多文章都没有我想要很多实际中能切合。脱离了环境的说明我不认为是有效的。基础环境要有,这里使用docker构建基础环境。没有基础就不要看这篇文章了,不然浪费时间,其次东西完全是个人研究用,不保证100%对。保证docker虚拟机已有。1、redis集群配置:下面的一切依照官网而来。dockerhub官网搜索redis。选择适合你虚拟机的版本。这是我的版本。并确保环境干净。Connecting to 192.168.253.129:22...Connection establis原创 2020-10-19 22:40:48 · 863 阅读 · 0 评论 -
有关MIME-TYPE
有关图片、音频、视频引出的mime。现有需求需要是实现图片、音频、视频上传,以及显示预览来组装数据,一切发送给用户。视频: MP4、webn、3gp<!-- 视频实现方式-->1、video标签音频:3gp、mp3、aac、amv等<!-- 视频实现方式-->1、audio标签图片:jpeg、jpg、png、bmp、gif1、img标签``除了上面的以外,你还有用下面几种方式,不到没有办法的办法不要使用下面的几种方式。1、embed标签2、object原创 2020-08-18 21:29:47 · 569 阅读 · 0 评论 -
200. Number of Islands
Number of IslandsGiven a 2d grid map of '1’s (land) and '0’s (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all .原创 2020-07-29 21:18:46 · 126 阅读 · 0 评论 -
视频总结----java锁、分布式锁
锁集合(这个图要记住的):悲观锁:悲观锁人为自己在使用数据的时候一定会有别的线程来修改数据,在获取数据的时候先加锁,确保数据不会被别的线程修改。锁实现:关键字synchronized、接口Lock实现类。适用场景:写操作较多、先加锁保证数据的正确性。悲观锁执行过程:乐观锁:乐观锁则是相反,认为自己使用数据的时候不会有别的线程来修改数据,所以不需要加锁,只是在更新数据的时候去半段之前有没有别的线程更新这个数据。锁实现:CAS算法,例如AtomicInteger类的原子自增是通过CAS自旋原创 2020-07-12 01:21:15 · 175 阅读 · 0 评论 -
String解析(JDK8)
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private int hash;原创 2020-07-04 03:09:14 · 371 阅读 · 0 评论 -
Java集合源码解析(易于理解版)
前文:首先你要耐心,最好有一定源码基础,没有也行下面也会教你怎么有效阅读源码。其次为什么先讲List。因为建立再这个基础上去理解其他的东西,事半功倍。原文件:正文:JAVA集合实现原理及其优化。背景介绍:这是基于jdk1.8分析的,主要是对java集合的实现源码分析。Java集合框架:注:上图参考百度结果。除了上面的集合类型。我们还会将Stack(栈)、Node(树)、Quene(队列)、HashTable的源码实现和优化点。1 List集合该接口: public interfa原创 2020-06-15 01:25:27 · 463 阅读 · 2 评论 -
UML
统一建模语言(UML)统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。传统的瀑布开发试图在遍程之前详细定义所有或者大部分需求。通常在遍程之前就创出完整的设计。试图在开始前定义“可靠的”计划或时间表。局...原创 2019-10-28 13:52:55 · 339 阅读 · 0 评论 -
java反射机制(一,引入和基本介绍)
method.invoke()方法,用来执行某个的对象的目标方法原创 2019-03-10 21:09:55 · 286 阅读 · 0 评论 -
多线程,高并发初步 + 源码(五,线程池)
基础知识接口Executor:执行器这是最初步的东西,只有一个execute方法。/***Executor:执行器,只有一个execute方法。 * * @author zhouyi **/public class MyExecutor implements Executor {public static void main(String[] args){ new M...原创 2019-04-09 19:48:55 · 2197 阅读 · 1 评论 -
多线程,高并发初步(四,并发容器)
线程安全的singleton(单例模式,线程安全)单例模式部分内容,来源:https://www.cnblogs.com/xudong-bupt/p/3433643.html1.多线程安全单例模式实例一(不使用同步锁)public class Singleton {private static Singleton sin=new Singleton(); ///直接初始化一个实例对象...原创 2019-04-08 00:13:53 · 320 阅读 · 2 评论 -
多线程,高并发初步(三,线程同步进阶1)
1,Lock接口:ReentrantLock的接口lock和unlock锁定和打开/** * Lock是ReentrantLock的接口 * ReentrantLock可以用来代替synchronized,这把锁是手工锁,必须手动加锁释放。 * @author zhouyi * */public class T { Lock lock = new ReentrantLock();...原创 2019-04-07 20:21:18 · 471 阅读 · 0 评论 -
多线程,高并发初步(二,线程同步)
synchronized同步关键字/** * synchronized关键字:对某个对象加锁。 * 是原子操作,不可分:原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束。 * @author zhouyi * */public class Synchronized { private int count = 10; private Objec...原创 2019-04-06 23:50:13 · 326 阅读 · 0 评论 -
java多线程
转自:https://www.cnblogs.com/felixzh/p/6036074.htmljava多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,后两种是带...转载 2019-03-02 16:25:34 · 125 阅读 · 0 评论 -
多线程,高并发初步(一 线程的建立方式)
常见的两种线程建立方式:继承Thread类和实现Runnable接口具体例子:这里说明一点比较常用继承来实现接口,以为比较简单化。package test;import org.junit.Test;public class TestThread {@Testpublic void testForeach() throws InterruptedException { Myt...原创 2019-04-03 23:05:22 · 151 阅读 · 0 评论 -
java注解知识
1.注解的三大作用范围2.常见注解原创 2019-03-08 23:16:04 · 122 阅读 · 0 评论 -
SpringBoot+Mybatis+RocketMQ+SpringCloud(一,SpringBoot整合)
简单说下自己目前的理解:springBoot是对spring的升级,为什么升级?因为各种语言发展到现在,已经非常方便了。但是java,甚至是spring都需要大量的jar包,编译,然后放入tomcat/apache中去执行,上线也需要很多。但是如果使用springBoot,就可以使用它自动生成的相当于main函数的,直接运行。上线,也变得简单。(待写)...原创 2019-03-14 22:05:47 · 2618 阅读 · 0 评论 -
XML
XML1,什么是XML?xml语言,可扩展的标记语言,这门语言它没有定义任何的标记,而标记是由使用者自己来定义,但是由于标签名称以及属性名称都由用户自己来命名,导致别人在使用的时候很不方便。有给xml语言定义了一些约束文档,这些约束文档就专门用来约束当前这个xml中能够书写的具体的标签以及属性等信息。xml作用: 1、存储和传输复杂的关系模型数据 2、作为配置文件存在,xml中主要配...转载 2019-03-26 23:06:56 · 158 阅读 · 0 评论 -
SSM整合
整合思路单独使用MyBatis的例子:单击你想要生成的文件的目录之下---->点击folder即可程序及运行结果:xml配置:数据库连接配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTO Config 3.0//EN""h...原创 2019-03-25 23:38:15 · 170 阅读 · 0 评论 -
spring/springMVC全跟踪(事务管理)
事务管理1,事务(transaction–tx)的概念:(关系到数据库)一组业务操作,要么全部成功,要么全部失败。比如两个人转账,一个减,一个加两个事件同时发生不发生。2,特性:ACID原子性:整体一致性:完整隔离性:并发持久性:结果3,隔离问题:脏读:一个事务读到另一个事务没有提交的数据不可重复读:一个事务读到另一个事务已经提交的数据(特指:update)虚读:一个事务读到另...原创 2019-03-21 17:13:29 · 1133 阅读 · 0 评论 -
spring/springMVC全跟踪(AOP面向切面编程)
AOP面向切面编程1,AOP介绍什么是AOP?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期"动态代理"实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各...原创 2019-03-17 22:57:04 · 2680 阅读 · 0 评论 -
spring/springMVC全跟踪(依赖注入DI)
Spring的概述:什么是spring?一个开源框架,轻量级,核心是控制反转(IoC)和面向切面(AOP),是一个一站式框架。spring就是一个大工厂,用于生成bean;层:(随便写的)struts:web层,比较简单;hibernate:相当于dao,知识很杂;spring:service层,很重要。spring分层架构:①入门案例:IoC1.1 导入jar包:4+1:4...原创 2019-03-03 23:08:44 · 351 阅读 · 0 评论 -
垃圾回收机制
内容待写原创 2019-04-10 22:06:04 · 116 阅读 · 0 评论 -
java基础中的基础
1,各种变量的初始值:封装的基本就是NULL,8大基本类型除了boolean都是0,8大基本类型:int , short , char , byte ,float , double ,boolean , long以及他们构成数组,list的成员都是0;封装的:Long , Double等的直接初始值是NULL;2,排序和去重数组的排序:Array.sort()list的排序:Collec...原创 2019-04-04 21:51:07 · 2070 阅读 · 0 评论 -
java导包和快捷键随记
1、首先对着myeclipse空白处,右键-&amp;amp;amp;amp;gt;Build Path-&amp;amp;amp;amp;gt;Configure Build Path…2、点击Libraries-&amp;amp;amp;amp;gt;Add External JARs…,选择一个外部的jar包,打开,OK。原创 2019-01-29 21:50:02 · 3210 阅读 · 0 评论 -
反编译技巧
1.eclipse中设置反编译工具常见反编译工具Java 反编译器 procyon-decompiler,Java 反编译器 JD-GUI2.反编译之后的位置原创 2019-03-12 22:23:35 · 230 阅读 · 0 评论 -
java的自动装箱/拆箱
以例子来说明例:java中有一种概念,java中一切皆是对象,但是java的基本8大数据类型不是对象。首先解释为什么要有这八大类型,因为它存放在存栈中。栈内操作速度快,创建销毁很容易。其他的是存放在堆中。...原创 2019-03-08 23:30:50 · 178 阅读 · 0 评论 -
interface、abstract、继承、多态、反射
interface和abstract的区别,可以说abstract是interface的一种特例。①abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没...转载 2019-02-27 12:36:29 · 376 阅读 · 0 评论 -
模板打印问题(copy别人)
//实现PDF生成,打印:①直接完全由java代码控制;②使用模板套打的方式(推荐使用)//技术介绍:java实现对PDF的编辑,使用了Itext技术,需要jar包支持;//配置文件如下:&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;gro转载 2019-02-25 22:18:25 · 305 阅读 · 0 评论 -
java关键字和方法
关键字:@PathVariable 获取URL上的参数@RequestParam 获取请求参数@RequestBody 将前台发送过来固定格式的数据封装为对应的JavaBean对象,例子:@RequestBody RestReBody reqBody ( RestReBody是一个对象)@ResponseBody 表示将该方法的结果直接写入HTTPResponseBo...原创 2019-02-09 12:57:25 · 246 阅读 · 0 评论 -
Jackson将实体转为json形式,且未空或者null(不参加序列化)
Jackson将实体转为json形式,且未空或者null(不参加序列化),常见用法:ObjectMapper mapper=new ObjectMapper().setSerializationInclusion(JsonIclude.Inculde.NON_NULL)常见还有:Include.ALAWAYS 默认;NON_DEFAULT 默认不序列化NON_EMPTY 属性为...原创 2019-02-17 00:13:07 · 621 阅读 · 0 评论 -
BUG随记
DEBUG常识选项:常见BUG,1,空指针:debug模式下,定位 -&amp;amp;amp;amp;amp;amp;amp;gt; 查找具体的空值原因(一定定位定到某个值)修改方式:例如: 1.1,long a = b.getD() == null? 0: b.getD(); 1.2,在前台传入时,增加check 1.3,还不是,后台增加逻辑块去处理,或者sql做check 注意,String是可以可以转null,需要留意。2,...原创 2019-02-05 22:28:38 · 170 阅读 · 0 评论 -
过滤器和拦截器,监听器
过滤器(filter):请求,响应,需要拦截器放行。实现一个接口,init(初始化),destroy(摧毁),需要在xml中配置过滤器。配置过滤器,同配置servlet一样。&amp;lt;filter&amp;gt; &amp;lt;filter-name&amp;gt;MyServlet&amp;lt;filter-name&amp;gt; &amp;lt;filter-clas原创 2019-02-13 22:28:53 · 142 阅读 · 0 评论 -
EL:Expression language
在传统的jsp页面中,使用&lt;% java代码 %&gt;显示数据有许多的弊端。比如类型转换,需要处理的null,代码参杂。采用EL,JSTL等就方便了很多。EL:实例:${requestScope.student.address.schoolAddress} 这里是request域${域对象.域对象中的属性.属性.属性… (一直级联属性)}EL的操作符:点操作符: 使用...原创 2019-02-11 22:03:29 · 137 阅读 · 0 评论