首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Java架构设计
获赞
7
粉丝
8
关注
3
看过 TA
26
长沙理工大学
2017
Java
IP属地:未知
90后程序员
私信
关注
拉黑
举报
举报
确定要拉黑Java架构设计吗?
发布(245)
评论
刷题
收藏
Java架构设计
关注TA,不错过内容更新
关注
2022-01-21 17:35
长沙理工大学 Java
JUC之线程间的通信
线程通信 创建资源类,在资源类中创建属性和操作方法 在资源类里面操作 判断 干活 通知 创建多个线程,调用资源类的操作方法 线程通信的实现例子: 两个线程,实现对一个初始变量为0进行操作,一个线程对其+1,一个线程对其-1,使得变量结果不改变 使用Synchronized实现的线程通信: package com.JUC; /** * 创建资源类 */ class Share{ //初始值 private int number = 0; //创建方法 public synchronized void incr() throws InterruptedException { //判断...
0
点赞
评论
收藏
分享
2022-01-21 17:35
长沙理工大学 Java
[平台建设] 大数据平台如何实现任务日志采集
背景 平台任务主要分3种: flink实时任务, spark任务,还有java任务,spark、flink 我们是运行在yarn 上, 日常排错我们通过查看yarn logs来定位, 但是会对日志存储设置一定的保留时间, 为了后续更好排查问题,希望能够将spark、flink、java任务都收集起来存储到ES中,提供统一查询服务给用户. 这是设计的动机. 针对这个想法,主要要解决几个问题? Flink、Spark、java 日志如何进行采集 如何在保证耦合度尽量低的情况下,同时保证不影响任务 部署方便, 用户端尽量少操作 调研 通过调研相关资料,选择基于Log4自定义Appender...
0
点赞
评论
收藏
分享
2022-01-21 17:35
已编辑
长沙理工大学 Java
Netty源码分析之ByteBuf引用计数
前言 引用计数是一种常用的内存管理机制,是指将资源的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。Netty在4.x版本开始使用引用计数机制进行部分对象的管理,其实现思路并不是特别复杂,它主要涉及跟踪某个对象被引用的次数。在Netty具体代码中需要通过引用计数进行内存管理的对象,会基于ReferenceCounted接口实现,其中引用计数大于0时则代表该对象被引用不会释放,当引用计数减少到0时,该对象就会被释放。通过引用计数机制,Netty可以很好的实现内存管理,引用计数减少到0时要么直接释放内存,要么放回内存池中重复利用。 1、基本示例 下面先通过一个简单示例看下Netty中引用...
0
点赞
评论
收藏
分享
2022-01-21 17:34
已编辑
长沙理工大学 Java
JVM 内存布局
本文主题内容: JVM 内存区域概览 堆区的空间分配是怎么样?堆溢出的演示 创建一个新对象内存是怎么分配的? 方法区 到 Metaspace 元空间 栈帧是什么?栈帧里有什么?怎么理解? 本地方法栈 程序计数器 Code Cache 是什么? 注:请 区分 JVM内存结构(内存布局) 和 JMM(Java内存模型)这两个不同的概念! 概览 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略 ,保证了 JVM 的高效稳定运行。 上图描述了当前比较经典的JVM内...
0
点赞
评论
收藏
分享
2022-01-21 17:34
已编辑
长沙理工大学 Java
用Java手写Redis服务端,从设计者的角度聊一聊Redis本身
起因 我为什么要造redis这个轮子? 1,破除对redis神秘感。 2,“基础服务中台”的同事们在开会讨论redis云,以及redis代理。 3,开一个redis资源并不是容易事,为什么不可以不可以写成java直接推送到未来云上,简单方便。 以这个思路我开始使用业余时间研究了redis的tcp通讯原理与redis命令,出发点是写一个redis云代理之类的云管理软件,但是还是忍不住写成了java版的redis,本文章主要分享redis的编写心路历程。 复制代码 一,redis通讯与Netty 1,tcp 连到Redis服务器的客户端建立了一个到6379端口的TCP连接。 虽然RESP在技术...
0
点赞
评论
收藏
分享
2022-01-21 17:33
已编辑
长沙理工大学 Java
配置线程池的拒绝策略
场景重现 第一步:创建Spring Boot应用,假设写好线程池配置。 @EnableAsync @SpringBootApplication public class Chapter78Application { public static void main(String[] args) { SpringApplication.run(Chapter78Application.class, args); } @EnableAsync @Configuration class TaskPoolConfig { @Bean public Executor taskExecutor1() { T...
0
点赞
评论
收藏
分享
2022-01-21 17:33
已编辑
长沙理工大学 Java
实战:如何在SpringBoot中整合JWT实现登陆注册
JWT可以理解为一个加密的字符串,里面由三部分组成:头部(Header)、负载(Payload)、签名(signature) 由base64加密后的header和payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了JWT字符串 往期介绍了JWT相关概念以及基本操作,接下来介绍如何在SpringBoot中整合JWT实现登陆注册 环境搭建# 1、新建一个SpringBoot项目Jwt-Demo,引入项目后面需要用到的jar包 <dependencies> <dependency> <groupId&g...
0
点赞
评论
收藏
分享
2022-01-21 17:33
已编辑
长沙理工大学 Java
SpringBoot 元数据配置原来可以这么玩
导读:Spring Boot jar 包含元数据文件,提供所有支持的配置属性的详细信息。该文件旨在让IDE开发者提供上下文相关的帮助和“代码完成”。总结本篇文章希望对从事相关工作的同学能够有所帮助或者启发。 一、背景 最近在调试reactive-steams源码的时候看到spring-boot源码包里面的 spring-configuration-metadata.json 和 additional-spring-configuration-metadata.json 说实话主要是metadata吸引了我,因为最近在调整引擎元数据管理确实折腾了很久。 查了官方的资料发现这里也是...
0
点赞
评论
收藏
分享
2022-01-21 17:32
已编辑
长沙理工大学 Java
还在curd吗?封装属于自己的Spring-Boot-Starter
阅读收获 👍🏻学会自定义Spring-Boot-Starter 👍🏻理解SpringBoot自动配置原理 本章源码下载 ❤️开发starter ❤️测试starter 什么是Starter Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。 使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块并设置默认值,做到开箱即用 为什么使用Starter 在我们的日常开发工作中,经常会有一些独立于业务之外的配...
0
点赞
评论
收藏
分享
2022-01-21 17:32
已编辑
长沙理工大学 Java
Java线程池面试要点
ava线程池在面试的时候问的挺多的,曾经我就在面试过程中两次被问到,面试官通过面试者对线程池的理解回答也能大致了解到面试者的实际开发经验如何,以及对多线程的理解运用有没有深入到位。 同时,面试官在切入多线程问题的时候通常也不会太过生硬,而是一步一步通过线程创建方式、线程状态切换、线程协同引导过来,整体谈下来其实也挺花时间的,会触及到多线程的方方面面,但对开发者素质确实也是一番不小的考验,今天我们也不完全铺开去描述,就仅仅针对线程池这一点来聊聊面试的时候会碰到的一些问题。 ThreadPoolExecutor参数含义 ThreadPoolExecutor 构造函数参数定义我们可以直接在 conc...
0
点赞
评论
收藏
分享
2022-01-21 17:32
长沙理工大学 Java
MyBatis 一个简单配置解决数据加密解密
前言:介绍一个简单的MyBatis加解密方式,日常学习工作中提及这种方法的比较少,所以拿来说说,如果已经知道这种方法的忽略本文! 一、背景 在我们数据库中有些时候会保存一些用户的敏感信息,比如:手机号、银行卡等信息,如果这些信息以明文的方式保存,那么是不安全的。假如:hk黑进了数据库,或者离职人员导出了数据,那么就可能导致这些敏感数据的泄漏。因此我们就需要找到一种方法来解决这个问题。 二、解决方案 由于我们系统中使用了Mybatis作为数据库持久层,因此决定使用Mybatis的TypeHandler或Plugin来解决。 TypeHandler : 需要我们在某些列上手动指定 ty...
0
点赞
评论
收藏
分享
2022-01-21 17:31
长沙理工大学 Java
SpringBoot中如何实现全链路调用日志跟踪?这种方法才叫优雅
之前有一篇文章简单的介绍过MDC,这次结合具体的案例、生产中的具体问题深入了解一下MDC。 MDC介绍 1、简介: MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。 当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,只需要从 MDC 中获取所需的信息即可。MDC 的内容则由程序在适当的时候保存进去。对于一个 Web 应用来说,通常是在请...
0
点赞
评论
收藏
分享
2022-01-21 17:31
长沙理工大学 Java
Java并发其实不难懂:底层CPU
前言 Java并发有诸多难点,实际上并非java语言本身的问题,本质上说一部分是因为并发操作本身的问题,另外一部分是因为计算机体系结构带来的。为了更好地理解java并发过程中的问题,我们应该对CPU有一些基础的认知。 CPU 在信息时代,CPU是我们耳熟能详的一个概念,大家都知道CPU就是计算机的大脑。计算机中一连串复杂的指令都是由它负责执行的,而这些指令通常就是我们称之为程序的东西。那么CPU到底是什么呢?CPU即中央处理器,它是计算机中控制数据操控的电路。主要由三部分组成:算术/逻辑单元、控制单元、寄存器单元。 控制单元是整个CPU的指挥控制中心,它的主要职责就是协调机器活动,通过向其他两...
0
点赞
评论
收藏
分享
2022-01-21 17:30
已编辑
长沙理工大学 Java
程序员最爱的框架之一:Spring Security
Spring Security 是一个基于 Spring AOP 和 Servlet 过滤器的安全框架,它提供了安全性方面的解决方案 Spring Security作为非常强大的框架,作为程序员是非常热爱的,我这里整理了四份Spring Security手写笔记及实战手册分享给大家 目录内容 SpringSecurity笔记(一) SpringSecurity笔记(二) SpringSecurity笔记(三) SpringSecurity笔记(四) Spring Security OAuth2.0认证授权 详细内容 由于整理的笔记内容过多,这里就不一一展示了,...
0
点赞
评论
收藏
分享
2022-01-21 17:30
已编辑
长沙理工大学 Java
最新神器Drone,轻量级CI/DI工具,几行脚本就能实现自动化部署
在开发或生产环境中,我们经常会搞一套自动化部署方案(俗称一键部署)。比较流行的一种就是Gitlab+Jenkins实现方案,不过这种方案占用内存比较大,没有个8G内存,很难流畅运行,而且部署起来也不快。最近发现一款神器Drone,轻量级CI/DI工具,结合Gogs使用内存占用不到1G,几行脚本就能实现自动化部署,推荐给大家! Drone简介 Drone是一款基于容器技术的持续集成工具,使用简单的YAML配置文件即可完成复杂的自动化构建、测试、部署任务,在Github上已经有22K+Star。 Gogs安装 我们将使用轻量级的Gogs来搭建Git仓库,这里只是简单说下安装步骤,具体使用可以...
0
点赞
评论
收藏
分享
1
9
10
11
12
13
17
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务