- 博客(34)
- 问答 (1)
- 收藏
- 关注
原创 【学习Day21】什么是函数的副作用?为什么优先选择无副作用的函数?
如果直接通过user1 = user来赋值的话结果还是改变全局对象,原因是,对象之间的赋值传递的不是值而是地址,而这些引用是存在栈中,值存堆中,通过=来赋值就是把user对象所对应的堆地址给了user1,值还是同一个。通过以上代码可以看到通过get方法对全局的user对象进行处理,并且改变了user对象的值,进而导致我主函数的if没有执行,这就是函数的副作用导致的,排查问题非常的时候很困。什么东西是两面性有好有坏,有副作用的好处呢,效率高,减少局部变量的代码。有副作用的函数会带来什么样的问题。
2022-11-20 12:09:00
294
原创 【学习Day22】foreach循环相较于for循环有什么优势?
由于for循环是通过下标来遍历的,所以对于数组结构数据执行效率更好forEach循环是通过移动地址来遍历,所以对链式结构数据执行效率更好forEach较for最大的优势就是,语法简单,并对链式结构的数据进行遍历更加的友好。
2022-11-19 13:22:56
261
原创 【学习Day20】什么是函数式接口?有什么使用场景?
lambda表达式用一种非常简洁的语法来实现代码lambda表达式替代匿名内部类,使其代码简化接口中只有一个抽象方法,称为函数式接口,大部分时候通过@FunctionalInterface注解修饰,此注解可以在编译的时候检测,如果有多个抽象方法,编译不通过为lambdab表达式铺路。
2022-11-19 12:52:34
297
原创 【学习Day19】override注解的作用?有什么优点?
Override注解告诉你下面这个方法是从父类/接口继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记。表示子类重写了父类的方法,如果方法名称写错了,编译器不会通过编译。
2022-11-15 14:44:15
223
原创 【学习Day18】什么是枚举类型?什么场景下使用?
枚举是和类以及接口同一个级别的类型,本质就是类(枚举类型编译后也会生成字节码文件)特殊:枚举是对只有有限对象个数的类的独立(枚举类型中提供对象个数是在定义枚举的时候就已经决定,外面不能添加枚举对象,在外面只能获取枚举对象使用),比如:星期只能有7个对象.采用eunm 关键字定义枚举类}
2022-11-12 16:02:10
963
原创 【学习Day17】什么是静态成员类?为什么静态成员类优先于非静态成员类?
在类内部定义的静态类,成为静态成员类实例:在使用一个类中静态成员类的时候,可以直接通过类名.静态类.静态方法进行调用静态类中的静态方法,而非静态方法不可以用用这种方法进行地调用。调用非静态方法,通过一下方法调用静态成员类调用类中的静态和非静态属性由图可知,在静态成员类的静态方法中不可以调用非静态的属性可以单独存在,不依赖外部类的实例 比如效率高,由于是静态的东西其数据存方法区里面,少了内存地址的创建过程。
2022-11-10 11:00:55
126
原创 【学习Day16】什么是不可变性?不可变性有哪些优缺点?
当类的实例一经创建,其里面的内容不可改变,即无法修改其成员变量,其内存地址是可以有多份的,成为不可变性。
2022-11-08 22:20:23
180
原创 【学习Day15】如何做到类和成员的可访问性最小化?
2.达到类或属性的最小可访问性,那势必要提供别的方法,来操作此类,那么在修改本类属性的时候,就不会改动其使用方。通过以上表格可以知道一共有四个访问修饰符,其访问范围从小到大顺序排列。1.隐藏类内部的实现,更加安全。
2022-11-07 10:33:31
74
原创 【学习Day14】Comparable接口声明了哪些方法?什么情况下实现Comparable接口?
*public int compareTo(T o)**这个接口需要一个泛型,而这个泛型当做这个方法的参数。Comparable的 compareTo方法返回一个int类型其值有三种情况。基础数据类型的封装类基本上都实现了Comparabl接口。Comparable接口只要用于排序操作的时候才会使用。Comparable接口只有一个方法。
2022-11-04 13:12:39
87
原创 【学习Day13】什么时候应该覆盖equals?覆盖遵循什么约定?
借鉴 https://www.jianshu.com/p/0eb9112c6591。借鉴 https://www.jianshu.com/p/bc9976483c09。只有在比较一个类中属性是否相等得到时候,才会去覆盖equals。
2022-11-02 13:22:28
118
原创 【学习Day12】try-with-resource与try-finally
JDK1.7开始,java引入了 try-with-resources 声明,它和try-finally一样也是捕获异常,只是对try-catch-finally 简化为 try-catch。注意:它只自动关闭实现了java.lang.AutoCloseable 接口(其中,它包括实现了 java.io.Closeable 的所有对象)的类会自动关闭资源。2.finally里面可以写任何代码,而try-with-resource语法中你只能在try里面写需要关闭的对象。
2022-10-30 17:23:30
520
原创 【学习Day11】什么是自动装箱和自动拆箱,什么时候下应该避免自动拆装箱?
装箱操作就是把基础数据类型自动转换成引用类型,比如定义一个数值类型它自动把int类型的数字转换为对应的引用类型,这就是装箱操作。拆箱操作就是把引用类型转换为对应的基础类型,比如这个num变量赋值给这就是拆箱操作。根据以上内容分析,基础数据类型和封装类。
2022-10-27 22:29:52
2096
原创 【学习Day10】哪些类应该用私有化构造,原因是什么?
经以上分析,可以知道私有构造最大的好处就是安全,配合静态方法来实例会对象减少内存的消耗,那么对于一些比较复杂的对象,占用内存高的对象,可以采用私有构造来实现,不仅提高了性能还节省空间。还有一些调用频繁的类,也可以采用这种方法。
2022-10-26 22:05:18
378
原创 【学习Day8】什么是静态工厂方法?是否应该用静态工厂方法替代构造器?
静态工厂方法属于创建型设计模式中工厂模式实现的一种,当创建一个类对象时,只需要通过这个类里面的静态方法来返回这个类对象的方法,成为静态工厂方法。通过上述分析完成可以通过静态工厂方法来替代构造器,静态工厂方法可以很好的控制自己能干什么,管理能力强,通过这种方式也可以集中管理对象,对维护很友好。
2022-10-25 22:33:45
201
原创 【学习Day9】什么是建造者模式?什么情况下应该用建造者模式?
是创建型设计模式一种,把对象一点一点的创建出来,创建的过程是透明,称为建造者模式。在类中有很多的属性要实现不同的表现的时候可以考虑建造者模式,可以很清楚的看见构建的过程,清楚每一步的操作。其次对于一些类改动少的情况可以用建造者,因为建造者构建对象通过类中的属性和方法来进行构建,如果频繁修改内容,建议慎用。
2022-10-25 21:56:31
198
原创 【学习Day7】SOLID原则是什么?有什么作用?
采用这五大设计原则,可以使程序便于扩展、高内聚,低耦合,总之一句话,采用这些设计原则来设计程序,便于后期的维护。SOLID是面向对象设计原则,由五大原则组成,SOLID是五大原则的缩写。
2022-10-21 20:11:00
227
原创 【学习Day5】接口和抽象类的区别、作用和使用场景
抽象类不能直接实例化,它的存在就是让子类来继承的,用来复用。一个接口有多个实现类的时候,通过接口调用怎么指定实现类。用来规定要实现什么功能,但不实现。
2022-10-20 13:55:46
315
原创 【学习Day3】Java字节码是什么?使用字节码有什么优势?Java类加载过程?
是通过JVM虚拟机编译以后产生的.class文件,其内容二进制。CodeDemo.class通过IDEA编译后的内容。CodeDemo.java文件。
2022-10-13 20:46:54
197
原创 【学习Day2】Jdk栈和堆的作用?哪些变量存储在堆上,哪些变量存储在栈上?
栈就好比一箱方面面,最先装的时候会放在最底下。,出队的过程就相当于垃圾回收(GC),所以其数据结构特点为。堆就好比一个管道,从左侧进入管道,并且存储在管道的最右侧。引用数据类型存储在堆上面,栈中存储堆的内存地址。基础数据类型会存储在栈上面。,要吃的时候会从上面先拿。,出去的时候从最右侧取。所以其数据结构特点为。
2022-10-11 20:40:39
268
原创 【学习Day1】List AbstractList ArrayList LinkedList的作用?ArrayList 构造有几种,有参数构造的意义?
List 是一个接口AbstractList 是一个抽象类ArrayList 普通类LinkedList 普通类。
2022-10-10 09:03:22
255
原创 【SpringBoot】配置文件读取
前言 springboot的配置文件是用来修改springboot默认的参数设置,在此基础上也可以自定义设置一些属性,用作项目的全局的属性值,而有的属性会在应用中用到,本章就来说说 如何读取配置文件设置的属性。一、如何读取application.properties/yam中的属性?1.方式一通过@Value注解来直接获取配置文件的值,参数为配置文件的项 @Value("${server.port}") private String port;2.方式二...
2022-09-25 20:05:07
183
原创 【IntelliJ IDEA】IntelliJ IDEA提交项目到Gitee
1.下载插件2. 选择VCS下面的 share project on gitee3.配置上传信息,第一个仓库名称,第二个为上传方式,第三个描述,如果没有配置全局的gitee邮件和用户名 需要配置一下4.弹出结果 ,全选然后点击add5.出现success fully 代表出现成功...
2022-05-07 22:33:19
171
原创 【IntelliJ IDEA】创建spring boot项目连接超时解决方案
通过一下两个地址进行创建spring boot项目1.spring的默认地址:https://start.spring.io/2.采用阿里云地址:http://start.aliyun.com
2022-04-04 23:28:12
846
原创 【Vue】node查看镜像/切换镜像 / 查看镜像
查看node.js版本node -v切换镜像命令npm config set registry http://registry.npm.taobao.org/查看镜像命令npm get registry
2022-03-22 11:32:01
4428
原创 【SpringBoot】配置文件设置
目录一、application.properties?特点:二、application.yaml特点:三、文件加载顺序一、application.properties?server.port=8080特点:采用键值对的方式设置 一行设置一个属性二、application.yamlserver: port: 8888特点:采用缩进的方式设置属性 清晰三、文件加载顺序springboot 启动会扫描以下位置的application.pro
2022-03-20 19:11:33
170
原创 【SpringBoot】第一个Springboot项目
目录前言一、springboot是什么?二、Idea创建第一个springboot项目1.创建一个springboot项目2.选择依赖4.写一个测试类5.启动程序6.测试三、总结前言 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开...
2022-03-19 20:50:16
1345
空空如也
做什么管理系统比较好
2021-08-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人