- 博客(39)
- 问答 (1)
- 收藏
- 关注
原创 被迫学习Java线程池
前言:今天写了一段让自己头大的代码,没有几十年精神病写不出来的那种。给大家瞅瞅/** * 用于向开发库插入数据 * 300万条数据 */public class ThreadSaveDB { public static void main(String[] args) { int size = 3000000; for (int i=0;i<size;i++){ ThreadPoolExecutor executor = n
2021-09-30 13:56:29
404
1
原创 开发环境批量插数据
前言上一节被迫把线程池给整会了。但是仍然没有把实际问题给解决:向数据库插300万条数据(太慢啦)。下面是我一步步加快执行速度的记录。实现步骤先来看下整会线程池之后的代码。public class ThreadSaveDB { public static void main(String[] args) { int size = 3000000; ThreadPoolExecutor executor = new ThreadPoolExecutor(30,3
2021-09-30 13:55:14
352
1
原创 Vue之v-model
v-model的基本使用<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="../../js/vue.js"></script></head><body> <div id="app"> <input type="text" v-model="messa
2021-09-29 00:13:57
271
1
原创 自定义注解
创建一个自定义注解需要两步自定义注解一. 创建自定义注解/** * 我自己用于测试的注解 * @author mjw * @version 1.0.0 */@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.FIELD})@Documentedpublic @interface MyAnnotationCheck {}二. 创建切面/*** * 我自己的注解切面 *.
2021-09-24 16:15:50
103
原创 JVM相关
运行时数据区域Java 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户进程的启动和结束而建立和销毁。1. 程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行字节码的行号指示器。在虚拟机的概念模型中,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式
2021-09-16 10:23:07
134
原创 Vue之v-for
v-for遍历数组<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="../../js/vue.js"></script></head><body> <div id="app"> <!-- 1. 在遍历过程中没有使用索引值 -->
2021-09-02 23:38:53
106
原创 v-show和v-if的区别
v-show和v-if的区别<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="../../js/vue.js"></script></head><body> <div id="app"> <!-- 当条件为false时,包含
2021-09-02 23:37:34
117
原创 Vue-条件判断
v-if<div id="app"> <h2 v-if="true">{{message}}</h2> #显示 <h2 v-if="false">{{message}}</h2> #不显示</div><script> //声明式编程 const app = new Vue({ el:'#app', //用于挂载要管理的元素 data:{ //定义数
2021-09-02 23:36:15
248
原创 V-on指令
V-onv-on:click/@click<div id="app"> <h2>当前计数:{{counter}}</h2> <!-- 方法一 --> <button v-on:click="counter++">+</button> <button v-on:click="counter--">-</button> <!-- 方法二 --> <
2021-09-02 23:35:41
150
原创 Vue-计算属性
计算属性 computed<div id="app"> <!-- 以前想要将两个属性结合起来 但是太麻烦了--> <div>{{name1}} {{name2}}</div> <div>{{name1 + ' ' + name2}}</div> <!-- 解决方法一 :方法--> <div>{{getFullName()}}</div> <!-
2021-09-02 23:34:05
148
原创 V-bind
v-bind如果某些属性我们希望动态来进行绑定:比如动态绑定a标签的href属性比如动态绑定img标签的src属性这时候我们就可以使用v-bind指令:动态绑定属性指令:v-bing缩写::基础<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="../js/vue.js"></script><
2021-09-02 23:31:52
156
原创 Vue插值语法
插值mustache语法 :{{}}mustache语法中,不仅可以直接写变量,也可以写简单的表达式。<div id="app"> <div>{{message}}</div> <div>{{one + two}}</div> <div>{{one + ' ' + two}}</div> <div>{{one}} {{two}}</div> <d
2021-09-02 23:29:45
295
原创 Vue基础学习
Vue基础学习如何创建?<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="../js/vue.js"></script></head><body> <div id="app"> <h2>{{name}}</h2> <
2021-09-02 23:27:26
139
原创 Linux
系统机构目录一切皆文件根目录 / ,所以的文件都挂载在这个节点下登录系统后,在当前命令窗口下输入命令ls/你会看到如下图所示:以下是对这些目录的解释:/bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不要动)/dev:dev是Device(设备),存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。/etc:这个目录用.
2021-09-02 23:24:00
263
2
原创 Redis
Redis什么是NoSQL关系型数据库:表格,行,列很多的数据类型的个人信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式。不需要多余的操作就可以横向扩展。 (Map)使用键值对来控制。NoSQL特点方便扩展(数据之间没有关系,很好扩展)大数据量高性能(Redis一秒写8万次,读取11万次,NoSQL的缓存记录级,是一种细粒度的缓存,性能很高)数据类型是多样的不需要事先设计数据库,随去随用传统RDBMS和NoSQL的区别传统的 RDBMS- 结构化组织- SQL-
2021-09-02 23:19:07
187
1
原创 深入理解零拷贝【ZERO COPY】
深入理解零拷贝在操作系统的层面上分为两个空间:用户空间与内核空间内核空间和用户空间一般通过系统调用进行通信。用户空间就是用户进程所在的内存区域,系统空间就是操作系统占据的内存区域。 用户进程和系统进程的所有数据都在内存中。传统的I/O操作Java虚拟机发出read()系统调用,(不是我们常使用的read()方法,这是操作系统底层的系统调用)。-> 用户空间向内核空间发出一个系统调用,发生一次上下文切换,用户空间模式切换为内核空间模式。由内核空间正真的向磁盘发出读取数据的请求,然后通过
2020-07-22 00:46:53
371
原创 NIO/Selector详解[Netty系列]
NIO/selector简单看下selector的源码注释可以直接跳过,后面都会详细讲到/** * A multiplexor of SelectableChannel objects. * * A selector may be created by invoking the open method of * this class, which will use the system's default {@link * java.nio.channels.spi.SelectorProv
2020-07-21 23:55:24
328
原创 Java NIO详解一[Netty系列]
Java NIO详解一(Netty系列)IO与NIO的区别java.io:以阻塞的方式处理输入输出。java.nio :以非阻塞的方式处理IO操作。java.io 中最为核心的概念是流(Stream),面向流的编程。Java中,一个流要么是输入流,要么是输出流,不可能同时及是输入流又是输出流。java.nio中拥有3个核心概念:Selector、Channel与Buffer。在java.nio中,我们是面向块(block)或是缓冲区(buffer)编程的。Buffer本身就是一块内存,底层实现上
2020-06-27 15:55:58
291
原创 使用百度地图API这么简单的嘛
使用百度地图API这么简单的嘛哎最终还是变成了前端程序员。。。最近项目上要求加上百度地图定位 --之前就只有高德地图然后就去百度地图官网学习啦,里面提供的代码实例太全啦我都不用敲代码啦。我们只需要跟着开发指南一步一步往下走即可–如果你是第一次使用百度地图那么你需要访问官网 哈哈哈这不是废话嘛,如果你够细心的话我想你看完官网的开发指南就不需要看我下面的内容了…重要步骤如下你唯一可能遇到问题的地方是在获取服务密匙的时候当时没有仔细看下面给出的提示,试了好久不知道Referer该填什么
2020-06-14 20:44:40
634
原创 小菜鸡带你gRPC入门[Netty系列]
gRPC介绍及实际应用介绍在之前我已经学习过protobuf。而gRPC可以将protobuf用作其接口定义语言(IDL)和其基础消息交换格式。我们来看官网给出的一张图 可以看出什么?至少我们可以看出grpc支持多种语言之间的通信吧。服务器端和客户端可以使用不同语言进行定义。官方 在gRPC中,客户端应用程序可以直接在其计算机上的服务器应用程序上调用方法,就好像它是本地对象,这使得你可以更加轻松的创建分布式应用程序和服务。与许多RPC框架一样,gRPC围绕定义服务的思想,指定可通过其参数和返回
2020-06-08 00:01:54
1457
1
原创 java中的异常详解
Java中的异常详解异常分类 – 在Java中,异常对象都是派生于Throwable类的实例。下面我们来看一下异常层次结构示意图。Throwable分解为两个分支:Error 和 ExceptionError类层次结构描述了Java运行时系统内部错误和资源耗尽错误。应用程序不应该抛出这种类型的对。如果出现了这样的内部错误,除了通知给用户,并尽可能使程序安全终止以外,再也无能为力。Exception层次又分解为两个分支:一个分支派生于RuntimeException;另一个分支包含其他异常【非Ru
2020-06-07 15:56:35
206
原创 Java内部类的用法
内部类内部类(inner class)是定义在一个类中的类。为什么要使用内部类?内部类方法可以访问该类定义所在的作用域的数据,包括私有的数据。内部类可以对同一个包中的其他类隐藏起来。当想要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比较便捷。接下来我们来写一个简单的例子来进行分析。public class InnerClassTest { public static void main(String[] args) { OtherClass
2020-06-01 23:18:14
178
原创 Gradle的下载安装及Gradlew的使用
Gradle的下载安装及Gradlew的使用window下安装Gradle Gradle官网我这里下载的gradle版本是4.4 大家可以可以安装最新版本的 gradle4.4下载完压缩包解压到指定路径即可配置环境变量key:GRADLE_HOMR value:D:\Java\gradle-4.4-all\gradle-4.4path:%GRADLE_HOME%\bin好啦现在我们就完成啦!接下来我们使用Idea来创建一个Gralde项目吧Finish即可构建完成!之后Gra
2020-05-31 22:36:33
9749
原创 小白也看得懂的图片上传【FileUpload+WebUploader】
小白也看得懂的图片上传使用的组件 FileUpload + WebUploader大家看了值呼内行,太简单啦!WebUploader 跳转FileUpload 跳转使用的框架Springboot+mybatis 虽然是我们可能使用的框架可能会不同但是实现的原理和代码是一样滴POM文件<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-
2020-05-27 23:41:12
924
原创 Ajax实现最简单的省市二级联动
AJAX实现最简单的省市二级联动实现效果 我这里不会搞动图-_- 难受我这里使用的是springboot的项目这里我对Mybatis进行了整合 大家有需要可以去看一下我之前的文章 跳转项目结构MySql 表数据编写Sql<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/my
2020-05-24 21:42:42
716
原创 Git
GIT简单了解及学习其实工作中用的是SVN并没有用到GIT 那我咋会想起来学一下git勒在学习Netty的过程中发现下载GRpc编译器的时候需要用到git 就干脆来学一下了 反正也就花个两天时间啦SVNSVN:集中式版本管理工具SVN的缺点:服务器单点故障容错性差一旦服务器挂了 我们客户端就没办法更新代码了GitGit是分布式版本管理系统,它是没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要互联网了,因为版本都是在自己的电脑上。那如何实现多人协作呢?
2020-05-24 16:12:52
152
原创 解决IDEA中file文件插件失去高亮显示的问题
解决IDEA文件失去高亮显示的问题昨天在使用IDEA编写.thrift文件的时候发现虽然已经安装了Thrift插件但是文件还是简单的txt显示效果。文件图标也没有任何的变化,而且里面特殊的命名如 namespace 等都失去了高亮显示,也没有代码提示。然后我的解决办法是进入 Setting --> Editor --> File Types找到 Text类型 并将里面的.thrift模板进行删除找到Thrift类型 我们发现里面的.thrift模板消失了 我们将
2020-05-17 23:53:35
2803
原创 对于RPC和Restful的理解
对于RPC和Restful的理解这段时间在学习Netty 之前没有接触过RPC 对于这一直不太理解 就百度啊官网啊再自己总结了一下 自己现在也总算是理解了点了 内容仅供参考注:很多都是百度和别的博文上抄过来的如有侵权马上删除RPC(Remote Procedure Call 远程过程调用)我之前一直理解 RPC是一种框架 具体详细查了一下才发现自己的理解一直是错误的就像 Restful 是一种风格一样 我也一直以为restful属于框架RPC是一种远程过程调用协议来说说RPC和HTT
2020-05-17 22:24:42
326
原创 Netty入门[Netty学习]
Netty入门Netty是什么?Netty官网的声明:Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 官网https://netty.io/ 大佬的博文: Netty 是一个异步通信框架 (通信框架) 详情请看:Netty 是什么?使用的管理根据 Gradle解决Gradle下载依赖过慢问题:使用阿里云的镜像plugins { id 'java'}group 'com.mjw'version '1.0-SNAPSHOT
2020-05-17 22:16:54
173
原创 Protobuf介绍及简单使用[Netty学习]
Protobuf入门下载及安装Protobuf官网地址 :需要去 git 下载你所需要的编译器 我在这里使用的是win32的下载下来之后配置一下环境变量即可官网给出的关于Protobuf的定义: 协议缓冲区是Google的与语言无关,与平台无关,可扩展的机制,用于对结构化数据进行序列化(例如XML),但更小,更快,更简单。您定义要一次构造数据的方式,然后可以使用生成的特殊源代码轻松地使用各种语言在各种数据流中写入和读取结构化数据。用来进行RPC的数据传输自定义的一种协议,以体积更小的方式对
2020-05-17 22:07:42
449
原创 Socket入门[Netty学习]
在学习Socket之前我们需要先了解通信协议通信协议(两个计算机通信,也就是两个计算机交流数据)通信规则UDP 速度快 不需要建立连接 不可靠TCP 速度慢 需要通过三次握手建立连接 可靠举例 UDP: 发短信 TCP: 打电话网络编程三要素 IP地址、端口号、通信协议Socket 套接字在程序中我们通过Socket进行通信...
2020-05-04 20:27:10
232
原创 Spring中基于注解的IOC及简单的CRUD
Spring中基于注解的IOCspring中ioc的常用注解曾经xml的配置<bean id="accountService" class="com.mjw.service.impl.AccountServiceImpl" scope="" init-method="" destroy-method=""> <property name="" value="" ref=...
2020-05-02 20:47:20
162
原创 看完这篇文章,我终于理解了变量、对象、引用
看完这篇文章,我终于理解了变量、对象、引用变量在程序运行过程中,其值能被改变的量称为变量。在Java中,所有的变量必须声明才能使用,声明方式为:变量类型 变量名; int a; 或者 Person p; a 和 p 都为变量。对象我们有一个Person类class Person{ field; construtor; method;}Person p;在栈内存中开辟一块...
2020-04-20 22:53:45
553
原创 哈?Lambda表达式竟然这么简单
哈?Lambda表达式竟然这么简单lambda表达式采用一种简洁的语法定义代码块那我们应该如何编写lambda表达式呢??我们先来看一段代码 -> 我们定义一个定时器,希望它每一秒打印当前的时间首先我们创建一个类实现ActionListener接口,定时器需要调用它的actionPerformed方法public class Timeing implements ActionLi...
2020-04-19 01:17:40
241
原创 导出Excel就这么简单
小菜鸡的学习之路!!!发现公司项目里有好多地方都用到了导出Excel表格。然后就这两天回家之后简单的学了下,防止下次要用到了急急忙忙的没有头绪.那首先我们去官网看看吧啦啦啦…官方API: https://poi.apache.org/.我们可以跟着API上的例子做一下我们讲下最重要的几个吧//创建一个工作蒲对象Workbook wb = new HSSFWorkbook(); ...
2020-04-16 22:21:35
1383
4
原创 Spring入门(ioc)[简]
Spring介绍Spring是什么Spring是分层的Java SE/EE应用 full-stack轻量级开源框架,以IOC(控制反转)和AOP(面向切面编程)为内核Spring的优势通过Spring提供的IOC容器,可以将对象间的依赖关系交由Spring进行控制,避免编码造成的过度程序耦合,用户不必再为单例模式类,属性文件解析等这些底层的需求编写代码,可以更专注于上层的应用什么是耦...
2020-04-12 20:16:53
194
原创 ztree快速入门[简]
写公司项目的时候发现有页面使用到了ztree,但是自己又么有学过,就乘着节假日学了一下。那什么是ztree呢? 这是百度给的答案:zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。专门适合项目开发,尤其是 树状菜单、树状数据的Web显示、权限管理等等。ztree官方api http://www.treejs....
2020-04-07 00:01:20
307
原创 Springboot整合Mybatis[简]
目录springboot整合mybatis1. idea快捷键创建springboot2. 创建数据库3. 创建实体类3. 编写Dao层4. 配置映射关系5. 添加数据库连接信息,并且配置Mybatis信息6. 编写service层7. controller层测试结果前端时间刚刚找到工作,入职任务要求做一个javaweb,一时间有点头晕,发现要实现的功能自己都会,就是不会搭建框架,最后就看着...
2020-04-06 14:03:50
604
原创 String源码分析(简)
String源码解析,基于java8CharSequence:charSequence是一个接口,表示char值的一个可读序列,是一个描述字符串结构的接口,在这个接口里一般有三种常用的子类: String类 , StringBuffer类 , StringBuilder类compareTo:按字典顺序比较源码如下:compareToIgnoreCase:按字典顺序比较,忽略大...
2020-04-05 22:57:45
268
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人