自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 GC垃圾回收

垃圾收集GC(Garbage Collection) 是Java语言的核心技术之一, 在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。但是不关心不代表它不存在,java中的gc垃圾回收的一些相关知识,本文进行了一些梳理:何为垃圾(定义垃圾),怎么科学的处理垃圾(垃圾收集算法),以及一些实现了回收垃圾理论的工具介绍(垃圾收集器)。

2020-12-28 20:21:33 327

原创 Linux下oracle数据库启动

回到终端机模式,输入:ps -ef|grep ora_ (作用是:查看是否有Oracle的进程,如果有,大多数情况说明启动了。3.进入sqlplus界面(命令是:$ sqlplus /nolog 或 sqlplus / as sysdba)输入:$ lsnrctl status (作用是:检查监听是否启动。如果没有启动,可以输入:$ lsnrctl start (作用是:启动监听器)SQL> startup (作用:启动数据库实例)1.登录到Linux服务器(ssh)2.切换到oracle用户权限。

2023-07-24 10:57:49 15626 2

原创 设计模式初步接触

什么是设计模式,为什么要使用设计模式,设计模式7大基本原则

2023-04-11 09:11:30 188

原创 互联网应用的设计思想

互联网项目中,高并发、高可用架构该如何设计

2023-04-09 23:37:14 187

原创 互联网应用的特点及其架构演变

互联网应用的特点及其架构演变

2023-04-09 10:23:04 2618

原创 分表分库概述

分表分库常见实现形式与实现技术方案概述

2023-04-02 14:52:49 88

原创 Java四种引用类型详解(强引用,软引用,弱引用,虚引用相关)

在JDK1.2之后,Java对引用的概念做了扩充,将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)四种,这四种引用的强度依次递减。(详情见:java中的四种引用类型)1.强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,

2021-04-02 14:23:22 319

原创 ThreadLoacl详解(使用+原理+ThreadLoacl造成的内存泄漏)

1.什么是ThreadLocalThreadLocal,线程本地化, 可以私有化存储线程的变量值。可以简单理解为ThreadLoacl能为每个线程提供一个专属于自己的存储空间, 可以在整个线程存活的过程中随时取用,极大地方便了一些逻辑的实现。常见用法包括:存储单个线程上下文信息。比如存储id等;使变量线程安全。变量既然成为了每个线程内部的局部变量,自然就不会存在并发问题了;减少参数传递。比如做一个trace工具,能够输出工程从开始到结束的整个一次处理过程中所有的信息,从而方便debug。由于需要

2021-04-02 11:17:34 723

原创 mysql优化大全,如何让你的sql执行的更高效

mysql优化切入点:事前:设计数据库时:数据库表、字段的设计(垂直分表),存储引擎 。横向扩展:MySQL集群、负载均衡、读写分离,分库分表 。事中:SQL语句的优化,利用好MySQL自身提供的功能,如索引等 。事后:mysql 中的慢查询Explian查看执行计划,做分析,做优化。数据库设计:字段类型的选择,设计规范,范式,常见设计案例一.表级设计规范:1.数据库和表的字符集统一使用UTF82.字段命名要见名知一,所有表和字段都需要添加注释3.单表字段不宜过多,

2021-04-01 12:00:13 173

原创 一些常见的题目介绍

1.Java虚拟机的作用2.jvm垃圾回收机制,他要回收哪些对象,在什么时候回收,怎么回收3.MinorGC 和FullGC介绍下4.线上日志频繁发生fullgc应该哪些方面去考虑定位5.说下spring框架的有点6.用过springboot和springcloud框架7.你们公司各个服务之间有通过比如说统一的调度中心去管理它么?8.spring支持的事务管理的类型9.redis分布式锁的大概原理10.线上redis的集群模式11.redis的内存淘汰机制12.过期删除策略13.re

2021-03-17 23:34:04 162

原创 N级台阶走法(算法问题)

N级台阶走法题目: 总共100级台阶(任意N级都行),小明每次可选择走1步、2步,问走完这100级台阶总共有多少种走法?分析:对于台阶走法假设只有一个台阶,那么只有一种跳法,那就是一次跳一级,f(1)=1;如果有两个台阶,那么有两种跳法,第一种跳法是一次跳一级,第二种跳法是一次跳两级, 如果有大于2级的n级台阶,那么假如第一次跳一级台阶,剩下还有n-1级台阶,有f(n-1)种跳法,假如第一次条2级台阶,剩下n-2级台阶,有f(n-2)种跳法。​ 只有1阶时,有F(1) -> 1;​

2021-03-16 09:59:47 3631

原创 Spring中的事务管理

数据库事务相关概念一荣俱荣,一损俱损 。对于数据库的操作可能分为很多步骤(sql),要么都执行成功,要么都执行失败。数据库事务有严格的定义,它必须满足4个特性:原子性(Atomic)表示组成一个事务的多个数据库操作是一个不可分割的原子单元,只有所有的操作都成功,整个事务才提交。 事务中的任何一个数据库操作失败,已经执行的任何操作都必须回滚,让数据库返回到初始状态。一致性(Consistency)事务操作成功后,数据库所处的状态和它的业务规则是一致的,即数据不会被破坏。 比如 A转给B10

2021-03-15 20:22:58 145

原创 一些日常问题小记录

1.交易线与展示线拆分背景:系统a需要为系统b提供一接口查询,用于计算打折后的活动商品价格情况分析:1.系统a定位为一个交易链路执行系统,主体为交易线提供服务2.为系统b所提供的接口服务属于展示线的服务3.新接口属于展示线调用量大,需要防止该接口影响到了现有交易线的接口解决方案:新接口划分独立包是为了和原来交易线的接口独立开,防止展示线的量过大,影响到了交易线。所以需要对现有系统a进行层级划分。独立一个war包,作为为展示层代码包,该包独立部署,有专门的数据源集群(redis)折后价作为商品

2021-03-11 15:32:53 101

原创 多线程编程辅助类的使用CountDownLatch、CyclicBarrier和Semaphore

上文,我们主要讲了线程池的相关知识,这篇文章主要讲讲那些配合线程池使用的辅助类:CountDownLatch、CyclicBarrier和Semaphore。一.CountDownLatchCountDownLatch 存在于java.util.cucurrent包下,字面意思为倒计数锁。countDownLatch这个类可以使一个线程等待其他线程各自执行完毕后再执行。该功能是通过一个内部计数器的属性实现的 。每当一个线程执行完毕后,调用countDown()方法,计数器的值就-1,当计数器

2021-03-04 20:29:29 235 1

原创 03.线程池的用法ThreadPoolExecutor类的详解

线程使用时我们要创建,不用时又要销毁,这样频繁的使用与销毁线程时会消耗大量的时间与资源,怎样才能避免使用线程时不必频繁的创建与销毁线程呢?这就要用到线程池技术:将多个线程放入一个池子中,由池子去管理这些线程的创建、使用与销毁。ThreadPoolExecutor线程池的核心类: ThreadPoolExecutor 。1.ThreadPoolExecutor的父类继承关系:1.ThreadPoolExecutor继承了AbstractExecutorService (抽象类)2.Abstract

2021-03-03 16:52:23 308 1

原创 一些较好的博文收录

Dubbo 一篇文章就够了:从入门到实战:https://segmentfault.com/a/1190000019896723Java多线程相关:https://www.cnblogs.com/dolphin0520/category/1426288.html

2021-03-01 15:50:40 96

原创 利用redis解耦代码逻辑,实现异步入库

Redis有着很多很多很有用的特性,比如提供原子性操作的方法,高可用,高并发,利用这些特性能有很多应用,比如削峰,解耦,提高系统的响应能力。流量削峰,异步入库实例:系统一瞬间有这超大的tps,这些请求都需要对数据进行数据库存储操作,且并不要求准实时,那么,我们可以将需要入库的信息先在Redis中缓存一道,然后通过job等定时器,定时将数据入库。示例代码如下:/** * 通过redis来实现削峰,解耦,提高系统的性能 **/class PeakClippingByRedisDemo{ p

2021-02-25 20:05:50 627

原创 Redis(2)-Redis常用命令速查手册

Redis常用命令速查Redis主要有5种数据类型,包括String,List,Set,Zset,Hash,满足大部分的使用要求数据类型可存储的Value操作应用场景String字符串、整数、浮点数对整个字符串或其中部分操作;对数进行自增、自减操作缓存限流计数器分布式锁分布式SesssionHash包含键值对的无序散列表添加、获取、移除单个键值对;获取所有键值对;检查某键是否存在用户信息页面访问量List列表首位压入、弹出元素;对部分元素进行操作队列

2021-01-25 20:35:20 181

原创 Redis(1)-Redis简介与特性详解

随着互联网的高速发展,高并发,大数据量的应用场景越来越普遍,传统的DB数据库已经不能直接的支撑业务的要求了,系统需要那些低延迟高处理速度,能够处理海量的数据流,并且易于大规模集群化管理的数据存储系统。这时候 ,NoSQL型数据库应运而生,它一般具备高性能、可扩展性强、高可用等优点,而Redis便是其中应用最广泛的一种。Redis是什么?在redis的官网上我们可以看到下面一段简介:Redis is an open source (BSD licensed), in-memory data struc

2021-01-07 20:39:09 612

原创 Java IO详解

一、流的概念与作用流(Stream): 在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据传输过程。人们根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。你既可以从流中读取数据,也可以往流中写数据。流的特性与数据源或者数据流向的媒介相关联。作用:为数据源和目的地建立一个输送通道。在Java IO中按照数据单位将流分为两类:1.字节流:以字节为单位进行读写 1字节(byte) = 8位(bit)。2.字符流:以字符为单位进行读写 1字符 = 2字节)。字节流和字符流的

2021-01-06 16:04:54 1285

原创 JAVA代码实现HTTP请求的常用方法

目前JAVA实现HTTP请求的方法最常用的有两种:通过HttpURLConnection去实现,HttpURLConnection是JAVA的标准类,是JAVA比较原生的一种实现方式。通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求。近期工作中刚好有使用到,在这里整理分享给大家,也方便自己以后查阅,代码如下。第一种方式:java原生HttpURLConnectionpackage net;imp

2021-01-05 14:32:57 825

原创 Java中的反射

Java中反射主要是通过java.reflect包中的对象来实现的,本文详细介绍下一些常见的反射使用方法。

2020-12-29 16:45:49 95

原创 Java中的类加载机制详解

Java中的一个类是如何加载入JVM 类存中的?本文围绕java中的类加载过程,讲述了诸如类加载过程、类加载机制、类加载器等知识点。

2020-12-29 16:37:57 809

原创 mysql order by limit分页时数据重复问题

在我们在使用mysql进行数据查询时往往会遇到数据量过大需要分页展示的问题,这时候就会使用limit关键字:SELECT * FROM table LIMIT [param1,] param2;LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。通常时在使用limit时,会辅以order

2020-12-15 10:52:01 1141 1

原创 02.Thread类的使用,线程类内部API详解

之前我们已经了解到了线程的由来,以及线程的简单创建与线程的生命周期转换,本文将带你进一步了解线程,详细讲解了线程构造函数,属性方法及常用API等

2020-12-02 15:41:58 164

原创 Java8 HashMap源码解析(内部存储结构及实现方式详解)

HashMap作为Java Collection框架下重要的一个Map实现类,在开发中有着很多用处,经典的数组+链表结构在Java8中有了一次小升级:数据+链表+二叉树结构,阅读此文能将带你进行一次HashMap知识点的全面回顾。

2020-11-30 17:38:51 439

原创 Lambda表达式详解(java8新特性,函数式编程)

Lambda表达式作为Java8的一个重要性能,那么它到底是做什么的呢?阅读本文能让你明白什么叫Lambda,用它你能做什么,以及所谓的函数式接口又到底是什么东西等((java8新特性,@FunctionalInterface,::关键字))

2020-11-27 20:07:51 325

原创 01.线程基础知识初识

现代应用程序中,并发是一种经常遇到的场景,在计算机世界中怎么实现并发这一操作的,我们编程如何才能应对高并发的应用场景呢?下面是本文的目录大纲:  一.进程与线程的由来  二.进程与线程的区别  三.java中的线程创建方法 四.线程的生命周期详解

2020-11-25 19:35:42 204 1

空空如也

空空如也

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

TA关注的人

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