自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 反射机制超详细

“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”,如Python,Ruby是动态语 言;显然C++,Java,C#不是动态语言,但是JAVA有着一个非常突出的动态相关机制:Reflection。 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个 对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java语言的反射机制,很多优秀的开源框架都是通过反射完成的。语言根据执行的方式可以分为编译型和解释...

2021-10-16 17:13:27 567

原创 java必会算法之冒泡排序

回顾java的学习历程,学习的算法的确不多,很经典的冒泡排序算是其中一个。本来不打算写这个的,这个算法起因于一场面试,唯独在这里翻了车。我们简单一点,就拿一个简单的数组来说,比如有一个数组,里面有三个元素{3,1,2},我们要对它进行冒泡排序,那冒泡排序的原理就是有着两层循环,对着数组中的元素进行排序,每次都从数组的第一个下标起,两两元素进行比较,假如说后面的元素小于前面的元素,那么就把前面的元素和后面的元素进行交换,这样经过一次的排序,就可以在数组的末尾选出一个最大值,完成一次冒泡,然后外层循...

2021-10-12 10:17:43 114

原创 Docker企业级开发

首先我们先了解一下什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好 的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚 拟化资源包括计算能力和资料存储。在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络

2021-10-12 00:11:33 145

原创 一题攻下this关键字

请看题package gouzaos;public class the {//每一个对象都有一个属性 String s = "nba"; //对象方法中都有一个隐藏的this 哪个引用调用这个方法那么this就是指向这个引用。这个里the()方法引用的指向test 传入了了cba 所以隐藏的this指向了the()中的cba. 所以第一个是cba,然后第二个就是this指向本身所传入的s 也就是nba public void test(String s) { Sys...

2021-10-10 10:35:07 100

原创 多线程深化之线程安全

我们设想一个这样的场景,有一个水杯,可以加水和喝水,不能边加水边喝水。喝水和加水就相当于两个线程,我们直接看代码。package gouzaos;import java.util.ArrayList;import java.util.List;/** * 水杯只有一个口 * <p> */public class Str { public static void main(String[] args) { //杯子 Cup c...

2021-10-06 14:06:15 72

原创 volatile弱同步机制

Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当 把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操 作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此 在读取volatile类型的变量时总会返回最新写入的值。在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比 sychronized关键...

2021-10-06 11:45:56 110

原创 子月带你真正地了解equals和==

我们先简单地了解一下它们的概念,简单地来说,equals比较的是两个对象之间的引用地址是否相同,而==是比较的两个对象之间的数值是否相等。我们先看下面的代码package gouzaos;public class Str { public static void main(String[] args) { String str1 = "子月"; String str2 = "子月"; String str3 = new String("子月"); String str...

2021-10-05 20:29:27 90

原创 基础篇之继承,重写,重载

突然心血来潮想写一写基础篇章的东西,正所谓基础不牢,地动山摇。想必很多学编程的小伙伴有时候也会对一些基础知识困惑吧! 首先我们来了解一下继承,简单地来说,继承就是子类继承了父类当中的方法,比如父类会打拳,然后子类继承了父类之后,子类就学会了打拳。看下面的代码package zuoye; class Person{ public void methods() { System.out.println("我是父类,会打拳"); } } class Son ex...

2021-10-03 21:00:32 104

原创 Zookeeper深入浅出

每次面对一个新的事物,我们首先肯定要问一句,什么是Zookeeper,好,它来了,ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,从设计模式角度来理解的话就是一个基于观察者模式设计的分布式服务管理框架。即管理着一些数据,这些数据发生变化的时候要给观察者提供响应。 它是一个为分布式应用提供一致性服务的软件,提供的功能包括:统一命名服务,统一配置管理,统一 集群管理,服务节点动态上下线,软负载均衡等。简而言之:有了zookeeper,分布式应用在其上进行注册即可实现集群中的主从...

2021-10-02 20:20:32 142

原创 SpringCloud篇章之注册中心

首先我们需要了解什么是注册中心,用官方的话来说就是服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。要是用子月的话来说的话就是注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注 册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。举个简单的例子,就拿子月的微信列表来说,假如我想给陆峥发个消息,那么子月就要先去微信...

2021-10-01 10:23:58 447

原创 深度剖析CAP原则的取舍策略

首先我们需要了解一下什么是CAP原则,C代表一致性,A代表高可用,P代表分区容错性,简单地来说CAP原则就是最多只能满足两个。鱼和熊掌不能兼得。那么为什么会造就成这样的情况呢?下面且听子月娓娓道来。 首先我们就可以知道最多可以有三种组合方式,CA CP AP 直接上图 简单粗暴CA:那么为什么能顺带着再满足P分区容错性呢?大家设想一下在一个业务下有两个集群,一个在上海,一个在北京。当满足了CA的时候,要想再满足分区容错性,那么必须要解决掉高可用下的异地数据同步问题,对吧,现代的技术...

2021-09-30 12:57:32 538

原创 java进阶之Redis篇章

首先子月带大家先了解一下什么是Redis,Redis是一个非关系型 开源的 内存中的数据结构存储系统 可以做缓存 用作数据库 消息中间件。想必大家都熟悉MySql吧!MySql作为关系型数据库,数据是持久化到磁盘上的,当高并发的时候是存在IO瓶颈的,而且还要遵循ACID原则。那么Redis就可以解决这个问题。Redis中的数据是以key value的形式存在的。支持多种的数据类型结构 字符串 集合 散列 列表 范围查询。 非关系型数据库一般不保证ACID原则的数据结构存储系统。键值...

2021-09-29 20:36:38 86

原创 简单易懂的递归

递归,简单地来说就是在程序执行的时候调用自己本身,但是一定要有一个终止的条件。下面又到了子月讲故事的阶段了,想必大家都看过盗梦空间吧,这就是一个递归的体现,首先我们先对应一个要点,一重梦境下又进入二重梦境,二重梦境下又进入三重梦境。这对应的不就是程序在不断地调用本身嘛!第二个要点,一定要有一个结束的条件,也就是递归出口。各位可还记得男主手中的陀螺图腾吗?这个对应的就是程序中的结束判断条件哦!​package zuoye;public class DiGui {public stat...

2021-09-29 09:54:55 367

原创 Spring事务的实现方式和原理以及隔离级别

在使用Spring框架时,可以有两种使用事务的方式,一种是编程式的,一种是申明式的,@Transactional注解就是申明式的。首先,事务这个概念是数据库层面的,Spring只是基于数据库中的事务进行了扩展,以及提供了一些能让程序员更加方便操作事务的方式。比如我们可以通过在某个方法上增加@Transactional注解,就可以开启事务,这个方法中所有的sql都会在一个事务中执行,统一成功或失败。在一个方法上加了@Transactional注解后,Spring会基于这个类生成一个代理对象,会将这个代...

2021-09-28 18:08:04 691

原创 2021-09-27 有关CAS问题的探讨,及其拓展延伸

所谓乐观锁就是每次不加锁,假设没有冲突而去完成某项操作;如果发生冲突了那就去重试,直到成功为止。 CAS(Compare And Swap)是一种有名的无锁算法。CAS算法是乐观锁的一种实现。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B并返回true,否则返回false。 那什么是CAS机制呢? CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。 CAS机制当中使用...

2021-09-27 22:11:50 91

原创 kali 连接外网(深夜配置竟被路由器gank)

首先子月简明地给大家解释一下kali如何连接外网这里我们采用的是桥接模式首先我们打开我们的kali更改之后 点击应用然后确定然后剩下的我们就只需要 修改kali 的内部文件了首先是vim /etc/network/interfaces配置DNSvim /etc/resolv.conf这里子月很疑惑一点 当时写了很多条nameserver 但是成功后 这个成为一条了 如果这个位置不行的话 小伙伴们可以去百度一下 这个好解决的。加油哦!然后servic.

2021-09-20 14:03:16 2239 2

原创 经典SSM项目整合过程,快速脱坑指南

知其然,然后知其所以然,我们首先来了解一下由spring衍生出的各种的框架服务的区别。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。主要针对的是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资.

2021-08-12 15:28:29 179

原创 2021-05-05 mysql数据库的基本操作

1在cmd中进入命令行 输入mysql -p -u root输入密码 进入数据库新建一个数据库2创建一个数据库 create database xizi;紧接着 use xizi;在这个库里面创建一个表create table t_user(id int auto_increment,username varchar(16) unique not null,password varchar(16) not null,age int,phone varchar(20),em...

2021-05-05 08:51:33 94

原创 基于 spring boot 实现用户的增删改查

基于登录实现后 在此我们更深一步地实现用户的增删改查(用户登录的实现在我的另一篇文章中)

2021-05-04 19:07:38 1425

原创 spring boot 项目实现简单的登录功能

spring boot 项目实现简单的登录功能首先我们来简单的了解一下 为了实现登录功能所需要的的模块 dao层 (数据访问层) bean层(这里面就是实体类) service层(服务层)controller层(控制页面的跳转)

2021-05-03 16:13:49 653

原创 关于spring boot项目的搭建并实现简单的控制器转发

在 idea 中 关于spring boot 初始项目的详细细节搭建

2021-05-02 21:54:45 333

空空如也

空空如也

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

TA关注的人

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