随笔分类 -  java框架学习

1 2 3 4 5 ··· 10 下一页
此分类用来学习java框架相关
摘要:有一个安全设计原则——“数据与代码分离”原则,它可以说是专门为了解决注入攻击而生的。 而注入攻击的本质,是把用户输入的数据当做代码执行。 这里有两个关键条件: 第一个是用户能够控制输入; 第二个是原本程序要执行的代码,拼接了用户输入的数据。 1 SQL注入 1.1 下面是一个SQL注入的典型例子。 阅读全文
posted @ 2024-06-04 23:40 Vincent-yuan 阅读(9) 评论(0) 推荐(0) 编辑
摘要:一.前言 设计良好的计算机软件应该是易于扩展,同时抗拒修改。 这就是著名的开闭原则(OCP)。 换句话说,一个设计良好的计算机系统应该在不需要修改的前提下就可以轻易被扩展。 其实这也是我们研究软件架构的根本目的。如果对原始需求的小小延伸就需要对原有的软件系统进行大幅修改, 那么这个系统的架构设计显然 阅读全文
posted @ 2023-09-09 17:32 Vincent-yuan 阅读(56) 评论(0) 推荐(0) 编辑
摘要:官方文档 配置方式一 1.在resources文件夹下创建一个目录mybatis-generator,在目录mybatis-generator下创建文件generatorConfig.xml(此处的目录名可任意取) 2. pom.xml中引入依赖(完整的pom.xml内容放在文末) <plugin> 阅读全文
posted @ 2022-12-11 21:58 Vincent-yuan 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1 EasyExcel简介 EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 github地址: https://github.com/alibaba/easyexcel 官方文档: https://www.yuque. 阅读全文
posted @ 2022-07-17 23:08 Vincent-yuan 阅读(2108) 评论(0) 推荐(2) 编辑
摘要:在项目中Debug过程中,突然发现使用Debug运行项目太慢,直接项目启动不起来了,但是Run模式则正常。 原因是在方法上打了断点,把断点去掉,Debug模式即可正常启动。 这里记录下 1.首先,我们Debug运行的时候非常慢的原因很大一部分是在方法上打了断点,而这种情况会出现Method brea 阅读全文
posted @ 2022-07-17 09:15 Vincent-yuan 阅读(2600) 评论(0) 推荐(1) 编辑
摘要:架构 系统: 一群有关联的个体 , 规则, 能力(产生了新能力) 子系统 模块:逻辑角度 -> 组件复用 组件: 物理角度 -> 单元分离 框架: 组件规范:mvc,等 架构:结构 1. 软件架构:指软件系统的顶层结构。 首先,系统是一群关联的个体组成,这些个体可以是子系统, 模块, 组件等; 其次 阅读全文
posted @ 2022-05-06 11:52 Vincent-yuan 阅读(344) 评论(0) 推荐(0) 编辑
摘要:简介 JNI方法申请的native 内存,通常是在JDK库里;本地 C++ 方法直接通过 malloc申请的内存,不受JVM管控。 堆内内存: 指Java堆,GC算法管理的内存区域。 堆外内存: Java堆外的内存都叫堆外。可以细分为JVM内部,Metaspace, JNI方法申请的native内存 阅读全文
posted @ 2022-05-05 15:40 Vincent-yuan 阅读(537) 评论(0) 推荐(0) 编辑
摘要:目录: Java程序测试:JVM调试体系, Intellij 调试, Junit自动化 Java程序监控: 常用监控工具, 性能问题 Java典型问题:锁问题, 线程池问题,JVM内存基础介绍, JVM内存问题分析与定位, TLS问题, Crash问题 JVM调试体系 简介 JPDA 全称 Java 阅读全文
posted @ 2022-05-05 11:08 Vincent-yuan 阅读(161) 评论(0) 推荐(0) 编辑
摘要:(一)问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。 在分布式系统来说,如果不想牺 阅读全文
posted @ 2022-03-30 00:05 Vincent-yuan 阅读(2464) 评论(0) 推荐(0) 编辑
摘要:写在最前面 在大型互联网应用当中如果你的应用引入了缓存机制,那么有一个大前提就是你的业务场景上必须得接受数据的新鲜度上有可能会有一定时间的延迟。 删除缓存失败是一个极小概率事件,且在不能保证所有操作100%成功的几率下,采用JOB补偿的机制是目前比较成熟的解决方案。 大并发量写请求的应用,不可能去实 阅读全文
posted @ 2022-03-25 00:15 Vincent-yuan 阅读(402) 评论(0) 推荐(0) 编辑
摘要:前提 实际上开发一个Java-SDK的过程,实际上也就是开发一个基本java项目并打包成jar包的过程,然后可以被其它项目引入使用。 开发Java-SDK 本例介绍开发一个向某一数据接口发送请求并返回结果的SDK 1、新建一个Maven工程test-sdk-java 2、编辑pom文件,引入需要的j 阅读全文
posted @ 2022-03-24 23:58 Vincent-yuan 阅读(2215) 评论(0) 推荐(0) 编辑
摘要:一、问题出现 测试代码 @Test public void listTest(){ List<String> list =new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); removeList0(list); list.f 阅读全文
posted @ 2022-03-24 23:46 Vincent-yuan 阅读(159) 评论(0) 推荐(0) 编辑
摘要:限流策略通常是用来在高qps下进行流量限制的,常见的方式有计数器、令牌桶、漏桶。 在这次活动中我负责的模块是控制的对下游的流量,我们可以让那些请求选择丢弃、等待或者降级这些限流算法可以自行实现也可以利用现有的限流工具,比如说Guava的令牌桶,具体看场景需求吧,下面来看一下这几种限流策略,再说说我写 阅读全文
posted @ 2022-03-20 23:46 Vincent-yuan 阅读(237) 评论(0) 推荐(0) 编辑
摘要:本文将从以下几个方面分析限流策略: 什么是限流 限流算法 限流算法的应用 什么是限流 在开发高并发系统时,有很多手段来防止系统过载:缓存、降级、限流。缓存的目的是提升系统访问速度和增大系统的吞吐量,降级和限流的目的如下: 降级 降级是当服务出问题或者影响到核心流程的性能时需要暂时屏蔽掉某些功能,等高 阅读全文
posted @ 2022-03-20 23:43 Vincent-yuan 阅读(256) 评论(0) 推荐(0) 编辑
摘要:POSIX 同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。 POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步I 阅读全文
posted @ 2022-03-20 22:57 Vincent-yuan 阅读(271) 评论(0) 推荐(0) 编辑
摘要:面试题目如下: 说说 Redis 为什么快 Redis 有几种数据结构,底层分别是怎么存储的 Redis 挂了怎么办?Redis 有几种持久化方式 多线程情况下,如何保证线程安全? 用过 volatile 吗?底层原理是? MySQL 的索引结构,聚簇索引和非聚簇索引的区别 MySQL 有几种高可用 阅读全文
posted @ 2022-03-20 00:17 Vincent-yuan 阅读(705) 评论(0) 推荐(0) 编辑
摘要:我相信大家都用过线程池,但是线程池数量设置为多少比较合理呢? 线程数的设置的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能,因此让我们一起去探索吧! 首先要考虑到 CPU 核心数,那么在 Java 中如何获取核心线程数? 可以使用 Runtime.getRun 阅读全文
posted @ 2022-03-18 17:04 Vincent-yuan 阅读(2167) 评论(0) 推荐(0) 编辑
摘要:jdk提供的线程池,当核心线程数已满,但是最大线程池数未满,来一个任务时,会先将任务加入阻塞队列。队列满之后才会创建线程来处理任务,这是比较适合cpu密集型任务的,但是像tomcat这种服务器程序就不太适合这种执行流程了。tomcat需要用户请求到达时马上就创建线程来处理,而不是加入阻塞队列。 先看 阅读全文
posted @ 2022-03-17 23:56 Vincent-yuan 阅读(259) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 10 下一页