挑战100天学会Java
文章平均质量分 96
0基础,挑战100天学会Java
Sunny_yiyi
一个有理想有道德有节操的软件工程师
展开
-
day40--Redis(二)实战篇
在这个方案中,他确实可以使用对应路径的拦截,同时刷新登录token令牌的存活时间,但是现在这个拦截器他只是拦截需要被拦截的路径,假设当前用户访问了一些不需要拦截的路径,那么这个拦截器就不会生效,所以此时令牌刷新的动作实际上就不会执行,所以这个方案他是存在问题的前言什么是缓存?就像自行车,越野车的避震器举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样;原创 2024-06-07 16:30:08 · 1505 阅读 · 1 评论 -
day39--Redis(一)快速入门
存储方式关系型数据库基于磁盘进行存储,会有大量的磁盘IO,对性能有一定影响非关系型数据库,他们的操作更多的是依赖于内存来操作,内存的读写速度会非常快,性能自然会好一些扩展性关系型数据库集群模式一般是主从,主从数据一致,起到数据备份的作用,称为垂直扩展。非关系型数据库可以将数据拆分,存储在不同机器上,可以保存海量数据,解决内存大小有限的问题。称为水平扩展。关系型数据库因为表之间存在关联关系,如果做水平扩展会给数据查询带来很多麻烦。原创 2024-06-07 09:20:03 · 688 阅读 · 0 评论 -
day38--SpringCloud(二)
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。原创 2024-06-07 08:42:44 · 862 阅读 · 0 评论 -
day37--SpringCloud(一)
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。原创 2024-06-06 16:03:01 · 832 阅读 · 0 评论 -
day36--Maven进阶
-定义自定义属性--> < properties > < spring.version > 5.2.10.RELEASE < junit.version > 4.12原创 2024-06-06 14:35:57 · 629 阅读 · 0 评论 -
day35--SpringBoot
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程Spring程序缺点配置繁琐依赖设置繁琐SpringBoot程序优点自动配置起步依赖(简化依赖配置)辅助功能(内置服务器,……)原创 2024-06-06 14:27:59 · 1057 阅读 · 0 评论 -
day34--Spring(三)
问题1:AOP的作用是什么?问题2:连接点和切入点有什么区别,二者谁的范围大?问题3:请描述什么是切面?AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构OOP(Object Oriented Programming)面向对象编程作用:在不惊动原始设计的基础上为其进行功能增强。简单的说就是在不改变方法源代码的基础上对方法进行功能增强。Spring理念:无入侵式/无侵入式。原创 2024-06-05 10:08:06 · 308 阅读 · 0 评论 -
day33--Spring(二)
问题:按照Bean名称获取Bean有什么弊端,按照Bean类型获取Bean有什么弊端?BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能ApplicationContext接口常用初始化类。原创 2024-06-05 09:54:08 · 1016 阅读 · 0 评论 -
day32--Spring(一)
我们为什么要学习Spring框架?生命周期:从创建到消亡的完整过程bean生命周期:bean从创建到销毁的整体过程bean生命周期控制:在bean创建后到销毁前做一些事情。原创 2024-06-05 09:35:04 · 766 阅读 · 0 评论 -
day31--MyBatisPlus开发利器
MyBatisPlus环境搭建的步骤?@Mapper通过入门案例制作,MyBatisPlus的优点有哪些?MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率官网:有什么简单的办法可以自动生成实体类的GET、SET方法?原创 2024-06-04 09:15:32 · 579 阅读 · 0 评论 -
day30--mybatis(三)高级
注解可以简化开发操作,省略映射配置文件的编写。常用注解@Select(“查询的 SQL 语句”):执行查询操作注解@Insert(“查询的 SQL 语句”):执行新增操作注解@Update(“查询的 SQL 语句”):执行修改操作注解@Delete(“查询的 SQL 语句”):执行删除操作注解配置映射关系< mappers > < package name = " 接口所在包 " />原创 2024-06-04 08:51:34 · 1066 阅读 · 0 评论 -
day29--mybatis(二) 进阶
采用 Mybatis 的代理开发方式实现 DAO 层的开发,这种方式是我们后面进入企业的主流。Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。1) Mapper.xml文件中的namespace与mapper接口的全限定名相同2) Mapper接口方法名和Mapper.xml中定义的每个statement的id相同。原创 2024-06-04 08:40:07 · 1148 阅读 · 0 评论 -
day28--Mybatis(一)快速入门
框架是一款半成品软件,我们可以基于这个半成品软件继续开发,来完成我们个性化的需求!ORM(Object Relational Mapping): 对象关系映射指的是持久化数据和实体对象的映射模式,为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。如图:mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。原创 2024-06-03 15:42:39 · 697 阅读 · 0 评论 -
day27--Maven
在学习Maven之前,我们先来看一下我们现在做的项目都有哪些问题。假设你现在做了一个crm的系统,项目中肯定要用到一些jar包,比如说mybatis,log4j,JUnit等,除了这些之外,你有可能用到你的同事开发的其他的东西,比如说别人做了一个财务模块或做了一个结算的模块,你在这里边有可能要用到这些东西。假如有一天你们的项目中mybatis进行了一个升级,但是它内部使用的JUnit没有升级,你升级以后的mybatis假如要用5.0的JUnit,而你项目中目前用的是4.0的,会不会冲突?必然会出问题!原创 2024-06-03 10:22:03 · 787 阅读 · 0 评论 -
day26--JDBC
在开发中我们使用的是java语言,那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。Statement对象的作用就是用来执行SQL语句。而针对不同类型的SQL语句使用的方法也不一样。执行DDL、DML语句执行DQL语句该方法涉及到了ResultSet对象,而这个对象我们还没有学习,一会再重点讲解。封装了SQL查询语句的结果。ResultSet executeQuery(sql) :执行DQL 语句,返回 ResultSet 对象那么我们就需要从ResultSet。原创 2024-06-03 09:13:28 · 1010 阅读 · 0 评论 -
day25--mysql高级
外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性。如何理解上面的概念呢?如下图有两张表,员工表和部门表:员工表中的dep_id字段是部门表的id字段关联,也就是说1号学生张三属于1号部门研发部的员工。现在我要删除1号部门,就会出现错误的数据(员工表中属于1号部门的数据)。而我们上面说的两张表的关系只是我们认为它们有关系,此时需要通过外键让这两张表产生数据库层面的关系,这样你要删除部门表中的1号部门的数据将无法删除。软件的研发步骤数据库设计概念。原创 2024-05-31 14:41:14 · 974 阅读 · 0 评论 -
day24--mysql基础
了解了数据模型后,接下来我们就学习SQL语句,通过SQL语句对数据库、表、数据进行增删改查操作。英文:Structured Query Language,简称 SQL结构化查询语言,一门操作关系型数据库的编程语言定义操作所有关系型数据库的统一标准对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。原创 2024-05-31 09:05:09 · 963 阅读 · 0 评论 -
day23--单元测试-反射-注解-动态代理
各位小伙伴,接下来我们学习注解。注解和反射一样,都是用来做框架的,我们这里学习注解的目的其实是为了以后学习框架或者做框架做铺垫的。那注解该怎么学呢?和反射的学习套路一样,我们先充分的认识注解,掌握注解的定义和使用格式,然后再学习它的应用场景。先来认识一下什么是注解?Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。原创 2024-05-30 17:07:28 · 957 阅读 · 1 评论 -
day22--网络编程
同学们,今天我们学习的课程内容叫网络编程。意思就是编写的应用程序可以与网络上其他设备中的应用程序进行数据交互。网络编程有什么用呢?这个就不言而喻了,比如我们经常用的微信收发消息就需要用到网络通信的技术、在比如我们打开浏览器可以浏览各种网络、视频等也需要用到网络编程的技术。我们知道什么是网络编程、也知道网络编程能干什么后了,那Java给我们提供了哪些网络编程的解决方案呢?Java提供的网络编程的解决方案都是在java.net包下。原创 2024-05-30 10:03:49 · 776 阅读 · 0 评论 -
day21--多线程
首先,什么是线程安全问题呢?线程安全问题指的是,多个线程同时操作同一个共享资源的时候,可能会出现业务安全问题。下面通过一个取钱的案例给同学们演示一下。案例需求如下场景:小明和小红是一对夫妻,他们有一个共享账户,余额是10万元,小红和小明同时来取钱,并且2人各自都在取钱10万元,可能出现什么问题呢?如下图所示,小明和小红假设都是一个线程,本类每个线程都应该执行完三步操作,才算是完成的取钱的操作。但是真实执行过程可能是下面这样子的。原创 2024-05-30 09:40:33 · 657 阅读 · 0 评论 -
day20--特殊文件、日志技术、多线程
首先,我们来认识一下,什么是XML?XML是可扩展的标记语言,意思是它是由一些标签组成 的,而这些标签是自己定义的。本质上一种数据格式,可以用来表示复杂的数据关系。XML中的称为一个标签或者一个元素,一般是成对出现的。XML中的标签名可以自己定义(可扩展),但是必须要正确的嵌套XML中只能有一个根标签。XML标准中可以有属性XML必须第一行有一个文档声明,格式是固定的XML文件必须是以.xml为后缀结尾如下图所示接下,同学们可以跟着步骤新建一个XML文件,试试!>原创 2024-05-29 09:49:00 · 658 阅读 · 0 评论 -
day19--IO流(二)
同学们,前面我们学习了字节流,使用字节流可以读取文件中的字节数据。但是如果文件中有中文使用字节流来读取,就有可能读到半个汉字的情况,这样会导致乱码。虽然使用读取全部字节的方法不会出现乱码,但是如果文件过大又不太合适。所以Java专门为我们提供了另外一种流,叫字符流,可以字符流是专门为读取文本数据而生的。原创 2024-05-29 09:11:28 · 1183 阅读 · 0 评论 -
day18--字符集、IO流(一)
各位小伙伴,在前面我们已经学习过File类。但是我们知道File只能操作文件,但是不能操作文件中的内容。我们也学习了字符集,不同的字符集存字符数据的原理是不一样的。有了前面两个知识的基础,接下来我们再学习IO流,就可以对文件中的数据进行操作了。IO流的作用:就是可以对文件或者网络中的数据进行读、写的操作。如下图所示把数据从磁盘、网络中读取到程序中来,用到的是输入流。把程序中的数据写入磁盘、网络中,用到的是输出流。简单记:输入流(读数据)、输出流(写数据)原创 2024-05-29 08:43:01 · 774 阅读 · 0 评论 -
day17-Map集合、Stream流、File类、递归
比如有如下案例:往HashMap集合中存储Student对象作为键,学生的家庭住址当做值。要求,当学生对象的姓名和年龄相同时就认为键重复。原创 2024-05-28 13:47:25 · 844 阅读 · 0 评论 -
day16--集合进阶(Set、Map集合)
最后,将所有的Collection集合总结一下,要求大家掌握每一种集合的特点,以及他们的体系结构。好了,关于Collection集合,到这里就学习完了。各位同学,前面我们已经把单列集合学习完了,接下来我们要学习的是双列集合。首先我们还是先认识一下什么是双列集合。所谓双列集合,就是说集合中的元素是一对一对的。Map集合中的每一个元素是以key=value的形式存在的,一个key=value就称之为一个键值对,而且在Java中有一个类叫Entry类,Entry的对象用来表示键值对对象。原创 2024-05-28 08:52:51 · 915 阅读 · 0 评论 -
day15—异常、集合
同学们经过刚才的学习已经认识了什么是异常了,但是无法为这个世界上的全部问题都提供异常类,如果企业自己的某种问题,想通过异常来表示,那就需要自己来定义异常类了。我们通过一个实际场景,来给大家演示自定义异常。需求:写一个saveAge(int age)方法,在方法中对参数age进行判断,如果age=150就认为年龄不合法,如果年龄不合法,就给调用者抛出一个年龄非法异常。原创 2024-05-28 08:31:25 · 685 阅读 · 0 评论 -
day14--Lambda、方法引用、算法、正则表达式、数据结构
接下来我们学习的类叫做Arrays,其实Arrays并不是重点,但是我们通过Arrays这个类的学习有助于我们理解下一个知识点Lambda的学习。所以我们这里先学习Arrays,再通过Arrays来学习Lamdba这样学习会更丝滑一些。原创 2024-05-27 09:27:37 · 1017 阅读 · 0 评论 -
day13——常用API&日期类
接下来我们用代码演示一下StringBuilder的用法为什么要用StringBuilder对字符串进行操作呢?因为它的效率比String更高,我们可以下面两段代码验证一下。经过我的验证,直接使用Stirng拼接100万次,等了1分钟,还没结束,我等不下去了;但是使用StringBuilder做拼接,不到1秒钟出结果了。接下来,我们通过一个案例把StringBuilder运用下,案例需求如下图所示代码如下。原创 2024-05-27 08:40:21 · 823 阅读 · 0 评论 -
day12——面向对象高级3
接下来我们学习一下自定义泛型类,但是有一些话需要给大家提前交代一下:泛型类,在实际工作中一般都是源代码中写好,我们直接用的,就是ArrayList这样的,自己定义泛型类是非常少的。自定义泛型类的格式如下//这里的其实指的就是类型变量,可以是一个,也可以是多个。public class 类名{接下来,我们自己定义一个MyArrayList泛型类,模拟一下自定义泛型类的使用。注意这里重点仅仅只是模拟泛型类的使用,所以方法中的一些逻辑是次要的,也不会写得太严谨。原创 2024-05-24 14:03:17 · 526 阅读 · 0 评论 -
day11——面向对象高级2
什么是多态?多态是在继承、实现情况下的一种现象,表现为:对象多态、行为多态。比如:Teacher和Student都是People的子类,代码可以写成下面的样子。原创 2024-05-24 12:21:07 · 1042 阅读 · 0 评论 -
day10-面向对象高级1
权限修饰符是用来限制类的成员(成员变量、成员方法、构造器…)能够被访问的范围。每一种权限修饰符能够被访问的范围如下下面我们用代码演示一下,在本类中可以访问到哪些权限修饰的方法。原创 2024-05-23 14:20:15 · 870 阅读 · 0 评论 -
day09-Java基础综合项目(ATM系统)
1. ATM系统功能介绍有查询、取款、存款、转账等业务功能,用户选择哪个功能就执行对应预先设定好的程序。由于没有图形化界面编程,所以我们是做不出界面效果的,但是我们可以在控制台模拟ATM机的各项功能。如下图所示:运行程序时,进入登录界面,在此界面可以登录、或者开户。在登录界面,如果用户录入2就进入用户开户的功能:如下图所示在登录界面,如果用户录入1就进入用户登录的功能:如下图所示:各位同学,你可能会觉得这个案例功能怎么这么多啊!太复杂了,其实也没你想得那么复杂。原创 2024-05-23 08:47:22 · 857 阅读 · 0 评论 -
day08-Java常用API
各位同学,接下来我们学习String这个类,也就是学对字符串进行处理。为什么要学习字符串处理呢?因为在开发中对于字符串的处理还是非常常见的。比如:在用户登录时,用户输入的用户名和密码送到后台,需要和正确的用户名和密码进行校验,这就需要用到String类提供的比较功能。再比如:同学们在直播留言时,有些小伙伴可能不太文明说了一些脏话,后台检测到你输入的是脏话,就会用***把脏话屏蔽掉。这也需要用到String类提供的替换功能。原创 2024-05-22 14:43:22 · 655 阅读 · 0 评论 -
day07-Java面向对象基础
首先每一部电影,都包含这部电影的相关信息,比如:电影的编号(id)、电影的名称(name)、电影的价格(price)、电影的分数(score)、电影的导演(director)、电影的主演(actor)、电影的简介(info)。为了去描述每一部电影,有哪些信息,我们可以设计一个电影类(Movie),电影类仅仅只是为了封装电影的信息,所以按照JavaBean类的标准写法来写就行。return id;原创 2024-05-22 08:49:32 · 1023 阅读 · 0 评论 -
day06-Java编程案例(专题)
各位同学,前面我们已经学习过很多Java的基础知识了,主要有。但是对于这些知识点的运用,掌握得还不是很熟练,所以今天我们专门花一天时间,给同学们讲几个专项练习题,把前面所学习的知识巩固一下。同时通过这些专项练习题,。这里所说的编程思维就是使用Java技术解决问题的思维方式;编程能力就是按照编程思维编写代码的能力。中国的航空母舰、战斗机,这些技术都是先模仿,再创新的,而且的模仿的周期是非常长的。原创 2024-05-22 08:35:00 · 928 阅读 · 0 评论 -
day05-方法
1.1 方法是什么**方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用。**这句话什么意思呢?意思是,把一段功能代码围在一起,别人都可以来调用它。下图是方法的完整格式我们看一个需求,比如现在张工、李工两个人都需要求两个整数的和。不使用方法,代码如下。// 1、李工。int a = 10;int b = 20;System.out.println("和是:" + c);// 2、张工。System.out.println("和是:" + c1);原创 2024-05-21 09:36:47 · 316 阅读 · 0 评论 -
day04-Java数组
各位同学,我们已经知道数组是用来干什么的。那么如何使用Java语言写一个数组呢?这里就需要学习一下数组的初始化格式。数组有两种初始化的方式,一种是静态初始化、一种是动态初始化。我们先用静态初始化来学习数组的操作。原创 2024-05-21 09:31:28 · 1071 阅读 · 0 评论 -
day03-Java流程控制
day03-Java流程控制原创 2024-05-21 08:49:15 · 962 阅读 · 0 评论 -
day02-类型转换、运算符
day02-类型转换、运算符原创 2024-05-21 08:35:36 · 992 阅读 · 0 评论 -
day01-Java入门
day01-Java入门原创 2024-05-20 17:13:35 · 854 阅读 · 0 评论