栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

周记录学习总结<大杂烩>

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

周记录学习总结<大杂烩>

目录

本周主题:琐碎时间中的觉醒。

周一

周二

周三

周四

周五

周六

周日

总结


本周主题:琐碎时间中的觉醒。

        总结这一周:效率有待提高,本周学的最多的是框架。因为前几周把javaweb看完后就去学一些计算机基础学科,计算机网络、mysql进阶、机组(操作系统还没咋接触)。所以框架迟迟拖延,现在刚刚开始补。不负自己的梦想把。加油。继续冲

 

记录时间:2022 5.9——5.13


周一

刷了2道题:剑指offer的11和32题 都是层序遍历想在复习一下,因为忘得有点多。刚刚开始不会写,然后就去b站找了题解看讲解视频,用广度优先和深度优先进行解题。

       

在下午和中午的时候看了左程云的b站视频,他的解题思路和想法我还有点跟不上,加油加油,努力跟吧,数据结构不能拉下。算法就是长远的事。

这周主要在学树,图的话,听他说在考查其他算法时会夹带考查图,我就先放了放。

在5.9日给maven的学习开了个头。

看的是硅谷的老师封捷老师和动力节点王鹤老师的maven视频。hhh怕听漏了所以都听了。发现很多东西重叠 了,虽然有点浪费时间,不过听两遍好理解了。写出maven的人确实厉害呀。

附上硅谷的笔记链接以后好复习:http://heavy_code_industry.gitee.io/code_heavy_industry/pro002-maven/


层序遍历题解如下: 

class Solution {
    public List> levelOrder(TreeNode root) {
        List> res=new ArrayList<>();
        if (root == null) {
            return res;
        }
        Queue que=new LinkedList<>();
        que.offer(root);
        while(!que.isEmpty()){
            List level=new ArrayList<>();
            int currentsize=que.size();
            for(int i=1;i<=currentsize;i++){
                TreeNode node=que.poll();
                level.add(node.val);
                if(node.left!=null)
                    que.offer(node.left);
                if(node.right!=null)
                    que.offer(node.right);
            }
            res.add(level);
        }
        return res;
    }
}


周二

周二它莱莱的满课,不得不说。我们学校的课挺水,还必须到,服了。不过晚上上了py高级学习了python numpy库和属于numpy的pandas

方便数组集合的操作。

今天忙里偷闲的怼了一点点硅谷的spring5 他没有用maven了解些注解。


周三

学了好多spring5的注解,真的挺方便的。hhhh下面是笔记。

1、什么是 IOC
(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
(2)使用 IOC 目的:为了耦合度降低
(3)做入门案例就是 IOC 实现
2、IOC 底层原理
(1)xml 解析、工厂模式、反射
3、画图讲解 IOC 底层原理
IOC (BeanFactory  接口)
1、IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂
2、Spring 提供 IOC 容器实现两种方式:(两个接口)
(1)BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用
* 加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
(2)ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人
员进行使用
* 加载配置文件时候就会把在配置文件对象进行创建
3、ApplicationContext 接口有实现类
IOC  操作 Bean  管理(概念)
1 、什么是 Bean  管理
(0)Bean 管理指的是两个操作
(1)Spring 创建对象
(2)Spirng 注入属性
2、Bean 管理操作有两种方式
(1)基于 xml 配置文件方式实现
(2)基于注解方式实现
IOC  操作 Bean  管理(基于 xml  方式)
1 、基于 xml  方式创建对象
(1)在 spring 配置文件中,使用 bean 标签,标签里面添加对应属性,就可以实现对象创建
(2)在 bean 标签有很多属性,介绍常用的属性
* id 属性:唯一标识
* class 属性:类全路径(包类路径)
(3)创建对象时候,默认也是执行无参数构造方法完成对象创建
2 、基于 xml  方式注入属性
( (1 )DI :依赖注入,就是注入属性
3、 、第一种注入方式:使用 第一种注入方式:使用 set  方法进行注入
(1)创建类,定义属性和对应的 set 方法

public class Book {
//创建属性
private String  bname;
private String  bauthor;
//创建属性对应的 set 方法
public void setBname(String bname) {
this. bname = bname;
}
public void setBauthor(String bauthor) {
this. bauthor = bauthor;
}
}


(2)在 spring 配置文件配置对象创建,配置属性注入


< bean  id= "book"  class= "com.atguigu.spring5.Book">

< property  name= "bname"  value=" " 易筋经" ">
< property  name= "bauthor"  value=" " 达摩老祖" ">


4、 、第二种注入方式:使用有参数构造进行注入 第二种注入方式:使用有参数构造进行注入
(1)创建类,定义属性,创建属性对应有参数构造方法

public class Orders {
//属性
private String  oname;
private String  address;
//有参数构造
public Orders(String oname,String address) {
this. oname = oname;
this. ad dress = address;
}
}


(2)在 spring 配置文件中进行配置


< bean  id= "orders"  class= "com.atguigu.spring5.Orders">
< constructor- - arg  name= "oname"  value=" " 电脑" ">
< constructor- - arg  name= "address"  value= "China">


5 、p  名称空间注入(了解)
(1)使用 p 名称空间注入,可以简化基于 xml 配置方式
第一步 添加 p 名称空间在配置文件中
第二步 进行属性注入,在 bean 标签里面进行操作

< bean  id= "book"  class= "com.atguigu.spring5.Book" p p :bname=" " 九阳神功 "
p p :bauthor=" " 无名氏" ">
IOC  操作 Bean  管理(xml  注入其他类型属性)
1 、字面量
(1)null 值

< property  name= "address">
< null/>

(2)属性值包含特殊符号

< property  name= "address">
< value>>]]>

2 、注入属性- 外部 bean
(1)创建两个类 service 类和 dao 类
(2)在 service 调用 dao 里面的方法
(3)在 spring 配置文件中进行配置
public class UserService {
//创建 UserDao 类型属性,生成 set 方法
private UserDao  userDao;
public void setUserDao(UserDao userDao) {
this. userDao = userDao;
}
public void add() {
System. out .println( "service add...............");
userDao.update();
}
}

< bean  id= "userService"  class= "com.atguigu.spring5.service.UserService">

< property  name= "userDao"  ref= "userDaoImpl">

< bean  id= "userDaoImpl"  class= "com.atguigu.spring5.dao.UserDaoImpl">
3 、注入属性- 内部 bean
(1)一对多关系:部门和员工
一个部门有多个员工,一个员工属于一个部门
部门是一,员工是多
(2)在实体类之间表示一对多关系,员工表示所属部门,使用对象类型属性进行表示

//部门类
public class Dept {
private String  dname;
public void setDname(String dname) {
this. dname = dname;
}
}
//员工类
public class Emp {
private String  ename;
private String  gender;
//员工属于某一个部门,使用对象形式表示
private Dept  dept;
public void setDept(Dept dept) {
this. dept = dept;
}
public void setEname(String ename) {
this. ename = ename;
}
public void setGender(String gender) {
this. gender = gender;
}
}


(3)在 spring 配置文件中进行配置


< bean  id= "emp"  class= "com.atguigu.spring5.bean.Emp">

< property  name= "ename"  value= "lucy">
< property  name= "gender"  value=" " 女" ">

< property  name= "dept">
< bean  id= "dept"  class= "com.atguigu.spring5.bean.Dept">
< property  name= "dname"  value=" " 安保部" ">



4 4 、注入属性- - 级联赋值
(1 )第一种写法


< bean  id= "emp"  class= "com.atguigu.spring5.bean.Emp">

< property  name= "ename"  value= "lucy">
< property  name= "gender"  value=" " 女" ">

< property  name= "dept"  ref= "dept">

< bean  id= "dept"  class= "com.atguigu.spring5.bean.Dept">
< property  name= "dname"  value=" " 财务部" ">

(2)第二种写法

< bean  id= "emp"  class= "com.atguigu.spring5.bean.Emp">

< property  name= "ename"  value= "lucy">
< property  name= "gender"  value=" " 女" ">

< property  name= "dept"  ref= "dept">
< property  name= "dept.dname"  value=" " 技术部" ">

< bean  id= "dept"  class= "com.atguigu.spring5.bean.Dept">
< property  name= "dname"  value=" " 财务部" ">


IOC  操作 Bean  管理(xml  注入集合属性)
1 、注入数组类型属性
2 、注入 List  集合类型属性
3 、注入 Map  集合类型属性
(1)创建类,定义数组、list、map、set 类型属性,生成对应 set 方法

public class Stu {
//1 数组类型属性
private String[]  courses;
//2 list 集合类型属性
private List  list;
//3 map 集合类型属性
private Map  maps;
//4 set 集合类型属性
private Set  sets;
public void setSets(Set sets) {
this. sets = sets;
}
publ ic void setCourses(String[] courses) {
this. courses = courses;
}
public void setList(List list) {
this. list = list;
}
public void setMaps(Map maps) {
this. maps = maps;
}
}


(2)在 spring 配置文件进行配置


< bean  id= "stu"  class= "com.atguigu.spring5.collectiontype.Stu">

< property  name= "courses">
< array>
< value>java 课程
< value>数据库课程



< property  name= "list">
< list>
< value>张三
< value>小三



< property  name= "maps">
< map>
< entry  key= "JAVA"  value= "java">
< entry  key= "PHP"  value= "php">



< property  name= "sets">
< set>
< value>MySQL
< value>Redis



4 、在集合里面设置对象类型值


< bean  id= "course1"  class= "com.atguigu.spring5.collectiontype.Course">
< property  name= "cname"  value=5 "Spring5  框架" ">

< bean  id= "course2"  class= "com.atguigu.spring5.collectiontype.Course">
< property  name= "cname"  value=s "MyBatis  框架" ">


< property  name= "courseList">
< list>
< ref  bean= "course1">
< ref  bean= "course2">


5 、把集合注入部分提取出来
(1)在 spring 配置文件中引入名称空间 util



(2)使用 util 标签完成 list 集合注入提取

< util :list  id= "bookList">
< value>易筋经
< value>九阴真经
< value>九阳神功


< bean  id= "book"  class= "com.atguigu.spring5.collectiontype.Book">
< property  name= "list"  ref= "bookList">

1 、Spring  有两种类型 bean ,一种普通 bean ,另外一种工厂 bean (FactoryBean )
2 、普通 bean :在配置文件中定义 bean  类型就是返回类型
3 、工厂 bean :在配置文件定义 bean  类型可以和返回类型不一样
第一步 创建类,让这个类作为工厂 bean,实现接口 FactoryBean
第二步 实现接口里面的方法,在实现的方法中定义返回的 bean 类型

public class MyBean  implements FactoryBean {
//定义返回 bean
@Override
public Course getObject()  throws Exception {
Course course =  new Course();
course.setCname( "abc");
return course;
}
@Override
public Class getObjectType() {
return null;
}
@Override
public boolean isSingleton() {
return false;
}
}
< bean  id= "myBean"  class= "com.atguigu.spring5.factorybean.MyBean">

@Test
public void test3() {
ApplicationContext context =
new ClassPathXmlApplicationContext( "bean3.xml");
Course course = context.getBean( "myBean", Course. class);
System. out .println(course);
}


周四

学完了maven的入门和mybatis的动态代理模式,对工厂模式有了解啦。

跟着动力节点的蓉姐学的mybatis ,很喜欢这个老师的风格。

leetcode刷了2个:


周五

上午一上午课,服了 上了Javaweb的实验课。下午去机房把mybatis的跟着敲了一下 看到了72。

关于占位符#{}和¥{}的笔记

#{}占位符
  传参大部分使用#{}传参,它的底层使用的是PreparedStatement对象,是安全的数据库访问 ,防止sql注入.
  #{}里如何写,看parameterType参数的类型
  1)如果parameterType的类型是简单类型(8种基本(封装)+String),则#{}里随便写.
     ===>入参是简单类型
        select id,username,birthday,sex,address
        from users
        where username like '%${zar}%'   ===>随便写
     
    B. 如果parameterType的类型是实体类的类型,则${}里只能是类中成员变量的名称.(现在已经少用)
    C. 优化后的模糊查询(以后都要使用这种方式)
   

周五的刷题:这是个递归的题


周六

昨天熬夜了,9点多才到机房。

然后补英语课,听了听力,为了六级

今天看了mybais到90多了

刷的题:还是递归的,hhhh

室友老早把我拉走了,想着周日确实也可以歇歇。明天一定冲。多学点。


周日

周日上午买了个云服务器,因为想做一个个人博客,用springboot 以及一些前端技术做一个更优秀的项目,在暑假实习前尽力做好,哈哈。今天找到了个前端页面 codepen在线编辑的代码网站,感觉很好呀。里面有大佬写的很不错的页面和背景,以后可以参考。

 

然后下午刷了一个力扣之后就准备做做概率论了,之前翘过几次课,而且快要考试了,要准备准备啦。


总结

        这个周总体来说,我的感觉是刷题太少啦,根本不够呀,不过快考试周了,等考试周结束,就赶快搞搞算法。投投简历。在暑假时,好好安排暑假,弯道超车大佬们。(doge) 开始好好准备秋招早点有实习经历,争取实现自己梦吧。希望下周自己好好复习旧课程。

        还有csdn更新的话,我喜欢记录自己每天发生的事,会在中间写一些感觉有用的东西。尽力不写水文。欢迎私信一起学习。一起秋招找个好offer。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/887565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号