Java技术栈是一个以 Java 技术为主的原创技术公众号。分享技术包括但不限于 Java 核心技术、多线程编程、Spring Boot、Spring Cloud、缓存、消息队列、架构设计等各种技术干货、Java 面试题、各种技术教程、行业动态等。
Spring Boot是目前最火热的项目之一,Java必学Spring系列框架。 这是个人珍藏的Spring Boot各路讲解的全套系列视频,包括从入门到进阶再到实战,资料、笔记、代码各种资源应有尽有。
最近要画流程图,破解了半天Visio2016没搞定,2016的估计都被封了,Visio收费又过贵,又不想折腾低版本的破解,所以找了个在线画图平台ProcessOn,没想到还出乎人意料,完全可以达到预期效果,而且比较轻量级,虽然没有提供客户端,但个人觉得已经很棒了。
1、大型网站技术架构:核心原理与案例分析 本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监控等在内的大型网站开发全景视图。
QQ用得起来越少了,现在就加入300+技术微信群,公众号回复"微信群"即可加入。 image 什么是服务降级 服务降级,就是对不怎么重要的服务进行低优先级的处理。
image.png Session是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理。单机情况下,不存在Session共享的情况,分布式情况下,如果不进行Session共享会出现请求落到不同机器要重复登录的情况,一般来说解决Session共享有以下几种方案。
QQ用得起来越少了,现在就加入300+技术微信群,下方公众号回复"微信群"即可加入。 什么是DevOps DevOps是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
QQ用得起来越少了,现在就加入300+技术微信群,下方公众号回复"微信群"即可加入。 常用的网站性能测试指标有:吞吐量、并发数、响应时间、性能计数器等。
内存管理是Java最重要的优势之一,你只需创建对象,Java垃圾收集器会自动负责分配和释放内存。但是,情况并不那么简单,因为在Java应用程序中经常发生内存泄漏。
QQ用得起来越少了,现在就加入300+技术微信群,公众号回复"微信群"即可加入。 什么是幂等性? 一般在服务调用时,读服务如果调用失败了,会自动按配置次数转移到别的服务上去请求。
Mycat是什么 Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件! 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替...
这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源实现数据库的读写分离。 添加依赖 加入Mybatis启动器,这里添加了Druid连接池、Oracle数据库驱动为例。
QQ用得起来越少了,现在就加入300+技术微信群,公众号回复"微信群"即可加入。 一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。
image image image 这是个人收藏的Dubbo系列高级教程,包括Zookeeper、Redis、ActiveMQ等实战解析,现在分享出来,获取可在下方公众号中回复:视频 申明:本视频内容与本公众号无任何关系,仅供学习交流使用。
QQ用得起来越少了,现在就加入300+技术微信群,公众号回复"微信群"即可加入。 image image image 这是某微信群友个人付费购买的高级教程,现在分享出来,直接在下方公众号中回复:视频 申明:本视频内容与本公众号无任何关系,仅供学习交流使用。
image 昨天微信群里在讨论金额计算及存储的话题,今天特来结贴一下。 经典的精度丢失问题 Java中的类型float、double用来做计算会有精度丢失问题,下面来看下面的示例。
QQ用得起来越少了,现在就加入300+技术微信群,下方公众号回复"微信群"即可加入。 公众号:java技术栈,每日更新 缓存雪崩,缓存穿透,缓存预热,缓存热备是在做缓存设计或者缓存应用时经常遇到的概念,也是缓存应用过程中必须熟知及知道 的东西。
QQ用得起来越少了,现在就加入300+技术微信群,下方公众号回复"微信群"即可加入。 image.png 这是某微信群友个人付费购买的高级教程,现在分享出来,微信群用户直接回复之前的暗号即可获取,如忘记暗号,在微信群吼一声。
标题中的substring方法指的是字符串的substring(int beginIndex, int endIndex)方法,这个方法在jdk6,7是有差异的。
在Spring Boot实现代码热部署是一件很简单的事情,代码的修改可以自动部署并重新热启动项目。 引用devtools依赖 org.springframework.boot spring-boot-devtools true 这样,当修改一个java类时就会热更新。
添加文件 git add 添加指定文件: git add test.txt Test.java 添加所有文件: git add . 取消添加文件 git reset HEAD -- filename git reset HEAD -- Test.java 这样Test.java将不会被提交到仓库中。
创建仓库 git init 在当前目录执行,会生成.git目录文件,这个和SVN一致。 提交到仓库 git commit -m "first commit" -m:表示提交描述,必须要填。
每次提交代码都要输入用户名密码,十分麻烦,教大家怎么让Git记住密码。 Https记住密码 永久记住密码 git config --global credential.helper store 会在用户主目录的.gitconfig文件中生成下面的配置。
如果使用ssh的方式管理,需要配置ssh key. 1、打开git bash命令窗口 2、生成ssh key ssh-keygen -t rsa -b 4096 -C "your_email@example.com" your_email@example.com为github上你注册的email地址。
添加分支 git branch git branch test1.0 切换分支 git checkout git checkout test1.0 添加分支并切换 git checkout -b git checkout -b test1.0 查看所有分支 git branch $ git branch * master test1.0 删除分支 git branch -d git branch -d test1.0 合并分支 合并到主干。
Git是什么 Git是一款免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 与常用的版本控制工具CVS、Subversion等不同的是它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。
群友在微信群讨论的一个话题,有点意思,特拿出来分享一下。 首先来看下面这段程序,和群友分享的大致一样。 public static void main(String[] args) { String hw = "hello world"; ...
最近发现微信群里面有些群友在讨论类的初始化顺序,如类的静态变量、成员变量、静态代码块、非静态代码块、构造器,及继承父类时,它们的初始化顺序都是怎样的,下面我通过例子来说明这个情况,以免被人误导。
QQ用得起来越少了,现在就加入300+技术微信群,关注下方公众号回复"微信群"即可加入。 image 这是最近在网上看到的关于分布式架构设计的一系列讲解视频,都是现在互联网大公司所用的分布式核心技术,现在分享出来,微信群用户直接回复之前的暗号即可获取,如忘记暗号,在微信群吼一声。
在使用spring-boot:run进行启动的时候,如果设置的断点进不去,要进行以下的设置。 1、添加jvm参数配置 在spring-boot的maven插件加上jvmArguments配置。
首先来看这么一个依赖 net.sf.json-lib json-lib 2.4 看似没问题吧?你觉得能下得下来吗?答案是否定的,下不下来。
我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd"; String str2 = new String("abcd"); 那么为什么会存在这两种创建方式呢,它们在内存中的表现形式各有什么区别? 下面来看下面两道经常遇到的面试题。
image Tengine介绍 Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。
image 问题描述 公司某个系统使用了tomcat自带的集群session复制功能,然后后报了一个oracle驱动包里面的连接不能被序列化的异常。
image.png 基本概念 操作系统中 heap 和 stack 的区别 什么是基于注解的切面实现 什么是 对象/关系 映射集成模块 什么是 Java 的反射机制 什么是 ACID BS与CS的联系与区别 Cookie 和 Session的区别 fail-fast 与 fail-safe 机制有什么区别 get 和 post请求的区别 Interface 与 abstract 类的区别 IOC的优点是什么 IO 和 NIO的区别,NIO优点 Java 8 / Java 7 为我们提供了什么新功能 什么是竞态条件? 举个例子说明。
1、一张表里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是18还是15 ? 2、mysql的技术特点是什么? 3、Heap表是什么? 4、mysql服务器默...
中山大学深圳研究院在昨天11月15号在深圳南山区虚拟大学园举办了“智能金融和区块链技术”论坛。 本次论坛邀请了中山大学移动互联网与金融大数据实验室郑子彬教授团队系统地介绍智能金融及区块链技术的现状、挑战、及展望,以及在智能金融及区块链上面的相关理论研究及应用成果。
下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的。 image.png Throwable Throwable是Java异常的顶级类,所有的异常都继承于这个类。
image 我们知道的JVM内存区域有:堆和栈,这是一种泛的分法,也是按运行时区域的一种分法,堆是所有线程共享的一块区域,而栈是线程隔离的,每个线程互不共享。
与CSDN同步更新。
支付宝的系统架构图,仅供参考。不管是不是支付行业,都值得我们参考,学习。 image image image image image image image ...
背景 每一个对外提供的API接口都是需要做流量控制的,不然会导致系统直接崩溃。很简单的例子,和保险丝的原理一样,如果用电符合超载就会烧断保险丝断掉电源以达到保护的作用。
image Disconf介绍 全称:Distributed Configuration Management Platform,即分布式配置管理平台。
image 背景 前阵子阿里巴巴发布了,可以加QQ群(公众号主菜单,点击微信群)获取。 不久,又一气呵成发布了Eclipse/Intellij Idea下的代码检测插件PC3,可谓是国内代码优秀的检测插件。
CAT介绍 CAT是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。 CAT作为大众点评网基础监控组件,它已经在中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等)中得到广泛应用,为点评各业务线提供系统的性能指标、健康状况、基础告警等。
image jmap -help 查看命令用法。 image jmap -heap 查看堆使用情况。 image jmap -dump导出堆对象文件进行内存分析。
image 这是之前的一个死锁案例: 一个多线程死锁案例,如何避免及解决死锁问题? 如程序中发生这样的死锁问题该如何排查呢?我们可以使用java自带的jstack命令进行排查。
image jps是java自带的查看java进程的命令,通过这个命令可以查看当前系统所有运行中的java进程、java包名、jar包名及JVM参数等。
image 我们都知道sleep是让线程休眠,到时间后会继续执行,wait是等待,需要唤醒再继续执行,那么这两种方法在多线程中的表现形态,它们各有什么区别呢? 可以总结为以下几点。
Cookie属性 了解这几个属性之后,就知道如何进行Cookie的操作了。 name Cookie的名称。 value Cookie的值。 maxAge Cookie的失效时间,有以下几种值,默认为-1 值 说明 负数 浏览器关闭后cookie就失效 0 马上清除cookie 正数 设置过期时间,单位:秒 path Cookie的有效路径,/表示这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问。
下面是一段随机数程序。 public static void main(String[] args) { System.out.println(randomString(-229985452) + " " + randomString(-147...