java
文章平均质量分 53
皓玥婷
这个作者很懒,什么都没留下…
展开
-
反射机制超详细
“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”,如Python,Ruby是动态语 言;显然C++,Java,C#不是动态语言,但是JAVA有着一个非常突出的动态相关机制:Reflection。 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个 对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java语言的反射机制,很多优秀的开源框架都是通过反射完成的。语言根据执行的方式可以分为编译型和解释...原创 2021-10-16 17:13:27 · 562 阅读 · 0 评论 -
java必会算法之冒泡排序
回顾java的学习历程,学习的算法的确不多,很经典的冒泡排序算是其中一个。本来不打算写这个的,这个算法起因于一场面试,唯独在这里翻了车。我们简单一点,就拿一个简单的数组来说,比如有一个数组,里面有三个元素{3,1,2},我们要对它进行冒泡排序,那冒泡排序的原理就是有着两层循环,对着数组中的元素进行排序,每次都从数组的第一个下标起,两两元素进行比较,假如说后面的元素小于前面的元素,那么就把前面的元素和后面的元素进行交换,这样经过一次的排序,就可以在数组的末尾选出一个最大值,完成一次冒泡,然后外层循...原创 2021-10-12 10:17:43 · 110 阅读 · 0 评论 -
一题攻下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 · 94 阅读 · 0 评论 -
多线程深化之线程安全
我们设想一个这样的场景,有一个水杯,可以加水和喝水,不能边加水边喝水。喝水和加水就相当于两个线程,我们直接看代码。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 · 70 阅读 · 0 评论 -
volatile弱同步机制
Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当 把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操 作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此 在读取volatile类型的变量时总会返回最新写入的值。在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比 sychronized关键...原创 2021-10-06 11:45:56 · 105 阅读 · 0 评论 -
子月带你真正地了解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 · 89 阅读 · 0 评论 -
基础篇之继承,重写,重载
突然心血来潮想写一写基础篇章的东西,正所谓基础不牢,地动山摇。想必很多学编程的小伙伴有时候也会对一些基础知识困惑吧! 首先我们来了解一下继承,简单地来说,继承就是子类继承了父类当中的方法,比如父类会打拳,然后子类继承了父类之后,子类就学会了打拳。看下面的代码package zuoye; class Person{ public void methods() { System.out.println("我是父类,会打拳"); } } class Son ex...原创 2021-10-03 21:00:32 · 101 阅读 · 0 评论 -
深度剖析CAP原则的取舍策略
首先我们需要了解一下什么是CAP原则,C代表一致性,A代表高可用,P代表分区容错性,简单地来说CAP原则就是最多只能满足两个。鱼和熊掌不能兼得。那么为什么会造就成这样的情况呢?下面且听子月娓娓道来。 首先我们就可以知道最多可以有三种组合方式,CA CP AP 直接上图 简单粗暴CA:那么为什么能顺带着再满足P分区容错性呢?大家设想一下在一个业务下有两个集群,一个在上海,一个在北京。当满足了CA的时候,要想再满足分区容错性,那么必须要解决掉高可用下的异地数据同步问题,对吧,现代的技术...原创 2021-09-30 12:57:32 · 514 阅读 · 0 评论 -
简单易懂的递归
递归,简单地来说就是在程序执行的时候调用自己本身,但是一定要有一个终止的条件。下面又到了子月讲故事的阶段了,想必大家都看过盗梦空间吧,这就是一个递归的体现,首先我们先对应一个要点,一重梦境下又进入二重梦境,二重梦境下又进入三重梦境。这对应的不就是程序在不断地调用本身嘛!第二个要点,一定要有一个结束的条件,也就是递归出口。各位可还记得男主手中的陀螺图腾吗?这个对应的就是程序中的结束判断条件哦!package zuoye;public class DiGui {public stat...原创 2021-09-29 09:54:55 · 365 阅读 · 0 评论 -
Spring事务的实现方式和原理以及隔离级别
在使用Spring框架时,可以有两种使用事务的方式,一种是编程式的,一种是申明式的,@Transactional注解就是申明式的。首先,事务这个概念是数据库层面的,Spring只是基于数据库中的事务进行了扩展,以及提供了一些能让程序员更加方便操作事务的方式。比如我们可以通过在某个方法上增加@Transactional注解,就可以开启事务,这个方法中所有的sql都会在一个事务中执行,统一成功或失败。在一个方法上加了@Transactional注解后,Spring会基于这个类生成一个代理对象,会将这个代...原创 2021-09-28 18:08:04 · 678 阅读 · 0 评论 -
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 · 87 阅读 · 0 评论 -
基于 spring boot 实现用户的增删改查
基于登录实现后 在此我们更深一步地实现用户的增删改查(用户登录的实现在我的另一篇文章中)原创 2021-05-04 19:07:38 · 1377 阅读 · 0 评论 -
spring boot 项目实现简单的登录功能
spring boot 项目实现简单的登录功能首先我们来简单的了解一下 为了实现登录功能所需要的的模块 dao层 (数据访问层) bean层(这里面就是实体类) service层(服务层)controller层(控制页面的跳转)原创 2021-05-03 16:13:49 · 639 阅读 · 0 评论