Java持续实践

持续学习 持续实践 持续输出

  • 博客(573)
  • 资源 (7)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

转载 mysql 设置sort_buffer_size

设置sort_buffer_sizeSET GLOBAL sort_buffer_size = 1024*1024;https://blog.csdn.net/w892824196/article/details/88072631

2021-05-14 11:38:49 12

原创 强引用 软引用 弱引用 虚引用

强引用: 平常写的大部分代码都是强引用, 例如Object obj = new Object(); 只要是强引用的类型, 那么垃圾回收的时候绝对不会去回收这个对象软引用: 把对象用SoftReference包装起来. 特点: 正常情况下垃圾回收是不会回收软引用对象的, 但是如果垃圾回收后, 发现内存还是不够存放新的对象, 内存快要溢出了, 那么就会把软引用回收掉, 即使这个软引用被其他变量引用了, 还是会被垃圾回收器回收掉.弱引用: 把对象用WeakReference包装起来. 特点.

2021-05-08 10:49:15 19

原创 解决antd table 获取数据后 不显示数据

偶现bug: 从接口获取数据后 antd table 不显示数据.解决 :获取请求的结果后, 重新遍历一遍 const listArr = res.data.content.map((obj: any) => ({ ...obj, })); setList(listArr);

2021-04-22 14:09:21 16

原创 RocketMQ 发送消息的三种方式 消费消息的两种模式

发送消息的三种方式:同步发模式: 发送消息到mq中之后, 要一直等待mq返回结果才会运行接下来的代码.异步发送模式: 消息发送后, 不会一直等待mq返回结果才执行下去, 而是会回调SendCallback 函数. 成功则回调onSuccess , 失败回调onException函数.单向消息模式: sendOneway方法不会去管发送的结果, 发送了代码就会往下走了.消费消息的两种模式:DefaultMQPushConsumer Broker 推送消息给消费方.DefaultMQ

2021-04-04 13:37:36 115

原创 解决windows印象笔记无法同步

打开此文件夹找到以exb结尾的此文件, 将此文件删除.接着重新登录你的windows印象笔记 . 登录之后就会同步正常了, 会下载exb文件, 时间会有点久耐心等待, 之前没有同步的文件也会去同步的.终于不会看到红色感叹号了...

2021-04-04 10:23:33 66

原创 Spring源码解析之 Bean与BeanDefinition详解

Spring解决的核心问题Spring解决的核心问题: 把对象之间的关系用配置来管理依赖注入: 依赖关系在Spring的IOC容器中管理通过把对象包装在Bean中, 以达到管理对象和进行额外操作的目的Bean与BeanDefinitionBean 是Spring的一等公民Bean 的本质就是Java对象, 这个对象的生命周期由Spring容器来进行管理不需要为了创建Spring的Bean 而在Java类上做额外的限制, 体现了Spring的低侵入.对于Java对象的控制体现在配置上(

2021-03-13 08:45:36 466 1

原创 Spring源码解析之 IOC的主流程与注解加载bean的验证

文章目录学习Spring源码的注意点基于注解加载Bean验证Controller等其他注解加载进容器学习Spring源码的注意点不要太在意版本的问题不用太过于在意细节, 掌握主要流程为主基于注解加载Bean在之前的如下文章中, 是根据xml去加载Bean 的https://javaweixin6.blog.csdn.net/article/details/113790554本次改为根据注解把bean加载到容器中去在Service的实现类中, 加上@Service 注解Entranc

2021-03-10 07:48:39 55

原创 Spring 源码解析之 实现容器的依赖注入 DI

实现容器的依赖注入为什么需要依赖注入如果一个类中, 依赖了另外一个类, 如下MainPageController 依赖了HeadLineShopCategoryCombineService . 那么就要保证HeadLineShopCategoryCombineService 这个类是初始化好的, 否则调用headLineShopCategoryCombineService.getMainPageInfo()方法的时候, 就会报空指针.@Controller@Getterpublic class M

2021-03-08 08:20:43 38

原创 Spring源码之 Bean实例的作用域

Spring框架中,包含有多种作用域singleton 在整个IOC容器中, 只会有一个Bean实例prototype 原型模式, 每次通过getBean方法获取Bean时, 都将产生一个新的对象.request 每次请求时, 都会产生一个新的实例. 只有在web应用中使用时, 才会有效session 每次会话都会产生一个新的实例globalsession 每个全局的http session . 使用 session定义的bean都将产生一个新实例. 只有在web应用中使用时, 才会有效.

2021-03-07 18:57:00 28

原创 Spring源码之 实现容器的增删改查

文章目录容器的增删改查测试用例容器的增删改查容器的增加删除操作, 往容器中添加和删除bean根据Class获取对应实例: 根据Map的key获取值获取所有的Class和实例通过注解获取被注解标注的Class通过超类获取对应子类的Class (通过传入接口获取接口对应实现类的Class对象, 例如传入Service的接口, 获取Service的实现类.)获取容器载体存储的Class的数量上面的需求实现的代码如下 /** * 添加一个class 对象和bean实例到容器中

2021-03-07 18:50:21 30

原创 Spring源码之 容器的载体和容器的加载

文章目录创建单例容器实现容器实现容器的加载测试用例创建单例容器使用如下的枚举创建单例容器 .@Slf4j// 创建私有的无参构造函数@NoArgsConstructor(access = AccessLevel.PRIVATE)public class BeanContainer { /** * 获取单例的bean容器实例 * @return */ public static BeanContainer getInstance() {

2021-03-07 16:00:13 23

原创 Spring 源码解析之 防止反射和序列化破解的单例写法

文章目录使用枚举内部类的单例尝试直接通过枚举反射创建实例反编译查看枚举单例模式源码(证明其是饿汉模式)使用枚举内部类的单例如下的类, 使用枚举的内部类方式创建单例. 在枚举中的构造方法创建对象 .public class EnumStaringSingleton { // 私有无参构造函数 private EnumStaringSingleton() { } public static EnumStaringSingleton getInstance() {

2021-03-07 11:09:26 40

原创 Spring 源码解析之 反射破解单例模式

文章目录为什么要用单例模式常见的单例模式的写法反射破解单例模式为什么要用单例模式需要同一个容器, 将所有的目标对象管理起来, 容器需要用单例来实现, 因此就要用到单例模式.常见的单例模式的写法常见的单例模式, 一般分为懒汉式和饿汉式.饿汉式的写法https://javaweixin6.blog.csdn.net/article/details/108435222懒汉式的写法https://javaweixin6.blog.csdn.net/article/details/108435929

2021-03-06 20:09:22 33

原创 Spring 源码之实现Class对象的提取

文章目录获取Class类的集合单元测试获取Class类的集合获取某个包下的类集合 代码如下 .主要是三步获取类加载器: 通过Thread.currentThread().getContextClassLoader() 来获取通过类加载器获取到加载的资源信息 , 是通过classLoader.getResource获取, 传入包路径, 注意要把. , 转化为"/".获取类的集合: 主要是 过滤出文件类型, 目前只处理file类型的协议, 再获取包下的实际绝对路径, 最后是通过绝对路径, 去

2021-03-06 19:21:54 41 1

原创 Spring 源码解析之 通过类加载器获取资源集合

文章目录提取标记对象编写获取某个包下的类的集合工具类提取标记对象实现思路:指定对象范围, 获取范围内的所有类遍历所有类, 获取被注解标记的类并加载进容器里.编写获取某个包下的类的集合工具类获取某个包下的类集合 :1. 获取到类加载器:目的: 获取项目发布的实际路径 . 不同的系统表示路径的方法不同. 如果是war或jar包就找不到jar包.类加载器: ClassLoaderClassLoader从字节码文件中读取字节码, 并转换为java.lang.Class一个类实例, 并存储

2021-03-06 11:41:20 54

原创 模仿Spring创建自定义注解

文章目录ControllerServiceRepositoryComponent模仿Spring起一个类似的包org.simpleframework.core.annotation下面模仿Spring创建如下的注解.创建不同的注解的作用是根据不同的注解, 去做不同的处理.例如Controller 注解可能要解析映射.Service 注解要 去开启事务.Repository 要去执行sql等Controllerpackage org.simpleframework.core.annotat

2021-03-06 11:01:47 26

原创 自定义IOC容器思路

文章目录自定义IOC容器思路框架应该具备的最基本的功能IOC容器的实现自定义IOC容器思路自定义IOC容器的思路如下, 给类标识上注解, 通过IOC容器去解析注解生成对象, 在程序运行时, 让容器去注入对象.框架应该具备的最基本的功能解析配置: 将相关配置加载进内存中, 存入进数据结构. 解析的配置可以是注解或者XML定位与注册对象: 解析完配置后, 需要获取内存中的目标对象, 定位就涉及到标记, 注解就是一种很好的标记语言.注入对象: 把需要用到这个对象的地方, 把对象精确无误的返回过来

2021-03-05 08:14:15 29

原创 Spring之IOC概念讲解

文章目录IOC控制反转Ioc - Inversion of Control依赖注入DI依赖注入DI实现控制反转IOC DI DL的关系依赖注入的方式依赖倒置原则IOC容器的优势注解与Spring框架中IOC的关系: 使用注解标记需要管理的实例, 并依据注解属性做精细控制.通过注解对类, 成员变量进行标记, 并通过解析注解标签里面的属性, 来做精细的操作.例如Controller, 可以给所有的Controller来设定一个@Controller自定义注解标签, 来标识这个类来处理页面请求的,

2021-03-05 07:36:33 32 1

原创 React 数字除以100保留两位小数并且用科学计数法显示

方法:// 货币计数法的方法const priceSplitter = (number: number) => (number && number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','));/** * 金额相除100保留2位小数 */export function divideKeepTwoDecimal(num: number) { if (!num) { return 0; } // 小数点

2021-03-03 14:32:14 113

原创 快速熟悉新接手项目的方法

快速学习业务的方法第一步 找产品经理和测试 来接业务需求 看他们演示操作一遍 (问测试也差不多了,测试一般都对业务很熟悉了)第二步 把各种相关文档看一遍第三步 把系统的整体流程操作一遍第四步 看数据库表结构和项目代码第五步 对着 所负责的业务 从头到尾 用自己的角度把数据重新设计一遍只有 对着 业务 去设计数据库 我觉得 才能考虑到很多点,很多业务的 细节,对系统的很多设计就懂了然后在对着 系统的 代码 dug 和 现有的数据库模型 去对比下这样对于上手业务真的很快边看可

2021-02-24 14:55:37 88

原创 注解底层实现原理

文章目录注解获取属性值的底层实现注解的工作原理注解获取属性值的底层实现JVM会为注解生成代理对象.这一节的文章中提到的获取注解信息的代码https://javaweixin6.blog.csdn.net/article/details/113914653注意注解的生命周期都要设置为runtime程序运行时, 设置如下的jvm参数, 保存生成的代理对象成为文件-Djdk.proxy.ProxyGenerator.saveGeneratedFiles=true只获取成员属性的值.运行上

2021-02-21 17:07:32 148

原创 Java 自定义注解的实现与解析注解信息

文章目录一.自定义注解的格式二.自定义注解demo三. 注解与类的关系四. 解析注解的信息4.1 解析注解在类的信息4.2 解析注解在成员变量上的信息4.3 解析注解在方法上的信息一.自定义注解的格式注解由于都是给其他的类中使用的, 所以一般都定义为public注解属性支持的类型所有的基本数据类型 8个String类型Class类型Enum 类型Annotation类型以上所有类型的数据注解是不能直接去继承其他的注解的.二.自定义注解demo自定义一个人的描述注解// 该注解

2021-02-21 15:33:32 59

原创 Java注解的 含义 作用 分类

文章目录一.注解的定义二. 注解的作用三. 注解的分类3.1 元注解3.1.1@Target的作用3.1.2@Retention的作用3.1.3 其他注解一.注解的定义注解是一种为程序元素设置元数据的方法元数据是添加到程序元素如方法, 字段, 类 和包上的额外信息.注解是一种分散式的元数据设置方式, 而xml是一种集中式设置方式, 与代码无绑定关系.注解不能直接干扰程序的运行注解的作用是把数据存储起来, 在某一个时刻去调用.注解是继承自Annotation二. 注解的作用作为特定的

2021-02-21 11:22:43 125

原创 moment把时间转为指定时区的时间戳

const formatTime = moment(validTime).format('YYYY-MM-DDTHH:mm:ss'); const timeStamp = moment.tz(formatTime, timeZone).valueOf();

2021-02-19 15:00:02 342

原创 自己搭建一个jsp项目小demo与jsp的原理

文章目录一. 自研框架的模块二. 创建新的模块三. pom文件导入依赖与插件tomcat7-maven-plugin 插件的小坑四 编写一个Servlet 与jsp五. 启动项目六. jsp文件本质一. 自研框架的模块自研框架的模块如下.主要包含了Spring 的核心的IOC和AOP, Parser用于把配置文件中的信息解析到类中.web层中, 实现Servlet 和MVC二. 创建新的模块新的模块取名叫做 simpleframework三. pom文件导入依赖与插件如下, pom中导入

2021-02-11 20:42:33 85

原创 自己的模块中引用Spring源码

文章目录一. 新建自己的模块一. 新建自己的模块接着写一个接口package com.demo.service;/** * 类名称:WelcomeService * 类描述:TODO * * @author: https://javaweixin6.blog.csdn.net/ * 创建时间:2021/2/11 15:58 * Version 1.0 */public interface WelcomeService { public String sayHello(Stri

2021-02-11 16:41:18 60

原创 Spring源码编译 (基于Spring5.2.0 RELEASE 版本)

文章目录一. 下载源码二. 编译源码三. 编译oxm 模块四. 导入IDE五. 排除spring-aspects 模块一. 下载源码https://github.com/spring-projects/spring-framework/tree/v5.2.0.RELEASE在Spring的GitHub仓库中, 选择5.2.0.RELEASE的版本进行下载到本地. 可以下载zip 包, 或者使用git clone命令进行下载二. 编译源码在源码的readme中, 有编译源码的教程 ,点击下面的超链

2021-02-11 15:41:42 92

原创 React 使用query在路由中传递多个参数

参数传递方import React from 'react';import { history } from 'umi';const Sending: React.FC = () => { // 跳转页面 handleClick: (record: any) => { history.push({ pathname: '/页面路径/Detail/', query: { stockType: record.stock

2021-02-09 17:57:58 116

原创 antd 列表排序

const handleTableChange = (pagination, filters, sorter) => { console.log('sorter.field', sorter.field); console.log('sorter.order', sorter.order); console.log('pagination', pagination); }; { title: '时间', dataIndex: 'time', .

2021-02-07 11:24:07 68

原创 React 中使用copy-to-clipboard

import copy from 'copy-to-clipboard'; const handleCopyPageLink = (record: any) => { const { id } = record; const articleLink = `${pageLink}/${id}`; if (copy(`${articleLink}`)) { message.success('已复制'); } }; { title:

2021-02-01 17:34:05 106

原创 antD 分页组件 pagination 的showTotal用法

用法如下, showTotal 要定义为一个对象的方法才行. // 分页参数 const paginationObj: object = { ...pagination, showQuickJumper: true, // 显示每页多少条数据 showSizeChanger: true, hideOnSinglePage: false, pageSizeOptions: ['10', '30', '50', '100'], onChange: p

2021-02-01 17:25:51 423

原创 moment将时间戳转为指定时区的日期格式

America/New_York 为美国UTC-5时区.updateTime 为后端返回的毫秒时间戳import moment from 'moment';moment.tz(Number(date), 'America/New_York').format('YYYY-MM-DD HH:mm:ss')

2021-02-01 11:39:31 270

原创 AntD DatePicker日期选择框 选择范围为某一年的1月1号到当天

import { DatePicker, Space } from 'antd';const { RangePicker } = DatePicker;function disabledDate(current: any) { return ( current // 日期范围, 限制为2021年1月1号,到当前的时间 && (current > moment().subtract(0, 'days') || curren

2021-01-26 16:04:04 86

原创 React定义类式组件

React定义类式组件 代码如下<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>2_类式组件</title></head><body> <!-- 准备好一个“容器” --> <div id="test"></div> <!-- 引入react核心库 -->

2021-01-10 16:50:08 173

原创 React 定义函数式组件

react定义函数式组件的代码如下<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>1_函数式组件</title></head><body> <!-- 准备好一个“容器” --> <div id="test"></div> <!-- 引入react核心库 --&g

2021-01-10 16:22:32 187

原创 JSX语法规则

jsx语法规则:1.定义虚拟DOM时,不要写引号。2.标签中混入JS表达式时要用{}。3.样式的类名指定不要用class,要用className。4.内联样式,要用style={{key:value}}的形式去写。5.只有一个根标签6.标签必须闭合7.标签首字母(1).若小写字母开头,则将该标签转为html中同名元素,若html中无该标签对应的同名元素,则报错。(2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错。...

2021-01-10 16:18:54 83

原创 git 回退代码到指定版本

git checkout 7e0b0018b10955d8ea805ff614eb33c4cf440be5 my.java7e0b0018b10955d8ea805ff614eb33c4cf440be5 是要回退的版本的git idmy.java 是要回退的文件 先进入到该文件的目录执行上面的命令

2020-12-16 11:07:18 115

转载 mac配置maven的jdk

https://www.cnblogs.com/chushujin/p/10991043.htmlvim ~/.bash_profile查看mac jdk的路径maven homeexport MAVEN_HOME=/usr/local/Cellar/maven/3.6.3_1/libexecexport PATH=$PATH:$MAVEN_HOME/binexport JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk

2020-12-16 10:33:40 207

原创 20201203某互联网公司面试题 每天看一遍多 知道自己有多菜

消息队列用的什么协议系统的预警消息有做去重吗 , 万一重复了怎么办Mq这个中间件是你们自己部署的, 还是一个集中的中间件平台?MQ 有做高可用吗定时任务是用于什么业务, 用的什么框架?系统里面有没有遇到什么难点, 能分享一下吗. ( 与第三方的沟通对接不算是难点. )说一下你了解的Jdk8的新的特性说一下violate 关键字的作用? 怎么样保证可见性的? 是怎么保证禁止指令重排的? 是怎么实现禁止指令重排的? 指令重排的具体的例子能不能说个导致线程安全的例子? 什么时.

2020-12-13 12:05:07 2514 10

原创 2020 某大型公司面试题

表设计问题 :假如我现在要做一个项目管理系统, 一个团队有很多人在做项目, 一个管理者想看到项目的进展, 项目经理可以在这个系统上建立项目, 项目的开始时间, 结束时间, 有哪些任务完成了, 哪些还在开发中, 每个项目下可能会有很多子项目, 我这个项目也可能分享给别人, 希望别人能看到我项目的进展 , 别人也可以对我的项目进行增删改查, 作为团队的管理者 , 可以看到所有的项目.如果让你做这个项目管理系统, 你会如何做表结构设计, 这些表是怎么关联的?系统里..

2020-12-13 11:40:33 4298 7

vagrant_2.2.6_x86_64.msi

由于vagrant官网下载vagrant_2.2.6_x86_64.msi非常慢, 因此提供下载

2019-10-31

jdk-11.0.11_osx-x64_bin.dmg

jdk11 mac 版本 oracle官网下载的

2021-04-26

eclipse activiti的插件

eclipse中的activiti插件. 此插件可以成功安装到eclipse中. 安装教程文章https://blog.csdn.net/qq_33229669/article/details/81809137

2018-08-18

eclipse插件豆沙绿主题

此资源为eclipse的豆沙绿主题,使用后,eclipse的主题可以变为绿色,保护眼睛.

2018-01-15

Another-Redis-Desktop-Manager.1.3.7.exe

Another-Redis-Desktop-Manager.1.3.7.exe 由于官网和码云上下载太慢, 因此上传,提供高速下载渠道。 比Redis Desktop Manager 更好用, 界面更美观

2020-07-14

FastDFS安装所需要的所有文件

搭建FastDFS集群,我们需要用到多个安装包,包括:FastDFS_v5.05.tar.gz、fastdfs-nginx-module_v1.16.tar.gz、libfastcommon-master.zip、nginx-1.6.2.tar.gz、ngx_cache_purge-2.3.tar.gz、apache-tomcat-7.0.47.tar.gz等

2018-12-09

tomcat集群session共享jar包

commons-pool-1.6.jar,commons-pool2-2.2.jar,jedis-2.2.0.jar,tomcat-redis-session-manager-1.2-tomcat-7.jar tomcat集群,实现session共享

2018-03-26

java持续实践的留言板

发表于 2020-01-02 最后回复 2020-01-02

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

TA关注的人 TA的粉丝

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