- 博客(44)
- 收藏
- 关注
原创 java反射
回忆一下我们之前是如何使用类和对象的,首先我们会先定义一个类,其次new一个该类的具体对象,通过对象调用该类中的属性和方法,这对于我们自己的业务开发是没有问题的,因为一切都是已知的,但是像框架,tomcat,或者一些其他组件而言,他们事先是不知道有哪些类的,更不知道要创建哪些类的对象,只能根据我们配置的类的地址决定要操作哪个类,那么他们是如何根据类的地址,去创建该类的对象,并调用该类的方法,将我们查询到的数据封装到一个该类的对象中,这就要用到我们说的反射的概念。
2024-08-18 10:04:29 745
原创 Mybatis(3)
mybatis中的一级缓存是相对于同一个sqlSession对象而言的,也就是说我们如果在不关闭sqlSession对象或者不对缓存中的数据进行操作的前提下,向数据库请求两次相同的数据,那么只会和数据库进行一次交互,在第一次交互时就会将数据保存到一级缓存的sqlSession对象中,第二次直接从sqlSession对象中取,但是mybatis中的一级缓存很少使用,因为我们基本不会用同一个sqlSession对象进行两次相同的查询。mybatis为我们提供了一级缓存和二级缓存,可以使我们减少与数据库的交互。
2024-08-16 22:58:46 887
原创 Mybatis(2)
如果只是传递单个参数,那么直接传递,在标签中利用parameterType属性指定参数类型即可如果是传递多个参数,可根据情况自己选择一种方式,一般建议传2-3个参数并且不方便在创建一个类进行封装时可以直接用注解标签,但如果传递的参数比较多,并且他们之间有关系,封装成一个对象方便时,那么可以在idea中在创建一个类,来单独封装该对象。
2024-08-14 08:59:18 547
原创 Mybatis(1)
在Dao层创建一个用于和数据库交互的接口,里面定义一些需要和数据库交互的方法//通过ID查询用户//返回所有用户集合//新增用户信息接口中主要就是定义一些与数据库交互的方法,声明该方法的形参和返回值,以便于sql映射文件中可以设置好参数类型和返回值,这样mybatis就可以帮我们把数据封装到对象中。
2024-08-12 16:38:58 925
原创 git安装
版本控制是指对软件开发过程中各种程序代码,配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一版本控制的主要功能是追踪文件的变更,它将什么时候,什么人更改了文件的什么内容等信息都一五一十的记录了下来,每一次文件的变更,文件的版本号都将增加,除了记录文件的变更之外,还可以用于解决企业中多人合作开发,代码管理共享的问题版本控制可以解决两个问题。
2024-08-10 09:47:10 923
原创 javaEE(2)
拦截web服务器向后端发送的数据,使请求地址在到达servlet之前进入到指定的过滤器中,可以对数据进行一些统一的处理,比如设置编码,权限控制等创建一个类实现Filter接口,并实现里面的doFilter()方法,过滤器要做的作用主要写在doFilter方法中这是一个设置编码的过滤器,的会被该过滤器拦截的servlet程序,都会在到达后端前被统一设置为utf-8编码。
2024-08-08 18:37:17 946
原创 javaEE(3)
当前端收到后端响应回来的数据时,我们可以根据状态码来作出对应的判断,但我们知道当返回500表示后端出异常,401表示token验证失败返回到登录界面,这两个状态码所要做的事情都是相同的,我们没必要在每一次接收响应时都写一遍,只需要写每次收到200时,要做的事就可以,所以前端为我们提供了一个响应拦截器,当我们每次收到后端的响应时,就可以先通过拦截器判断状态码是不是500或401如果是就不用响应到前端,直接在拦截器作出响应操作,如果是200才在前端做出具体操作。
2024-07-30 11:13:58 1075
原创 javaEE(1)
有时候我们在启动tomcat服务器时,有可能会出现和其他应用程序的端口相同,导致tomcat启动失败,这时候我们可以通过上面介绍的文件结构,打开conf,tomcat的服务器配置文件,再打开里面的server.xml修改默认打开的端口号即可。
2024-07-27 21:41:39 1171
原创 HBuilder X中配置vue-cli项目和UI库
我们一般在网上下载的前端项目是没有node_modules文件夹的,因为这里面包含的是项目所依赖的外部组件文件,并且该文件夹占用的空间较大,我们可以通过node.js中的命令(类似于maven中的pom.xml文件)来从远程仓库中自己下载,所以不需要别人打包发过来,这样既省空间,又节约时间,该命令是。一个项目中有很多HTML文件,一个HTML文件表示一个网页,他们之间彼此独立,互相没有联系,我们每次导入其它前端文件时,需要给每一个HTML文件都导入,需要导入的文件一旦过多,就会很麻烦,并且整体看来很乱。
2024-07-26 14:58:14 1260
原创 vue.js入门
我们之前写的javaScript代码都是原生的,而框架是在基础语言之上,对其进行了封装,使我们只关心要操作的数据,而不关心如何从对象上得到数据,方便程序员进行开发,提高效率的,我们要介绍的vue.js就是前端的一种框架,它是对javaScript的一种封装。
2024-07-25 16:13:34 930
原创 javaScript
javaScript是由美国网景公司开发的一种脚本语言,起初叫LiveScript,和java一样也是一种面向对象的语言,后面和Sun公司合作,改名为javaScript不用编译,靠解释器解释就能运行的语言 eg:SQL,HTML,CSS,python等javaScript和HTML,CSS的关系HTML是结构,CSS是样式,javaScript是行为javaScript通过function关键字来定义一个函数,格式如下function:定义函数的关键字functionName:函数名。
2024-07-24 14:54:02 755
原创 初步认识css(2)
我们可以将网页上的标签看做是一个个盒子,对网页的布局其实就是摆放盒子的过程,一个标签是由内容区,内边距,边框,外边距组成,而一个网页就是由一个个标签组成内容区:放内容的区域内边距:内容到边框的距离边框:标签的最外层外边距:标签和标签之间的距离。
2024-07-23 09:05:54 496
原创 初步认识HTML
HTML(HyperText Markup Language)是超文本标记语言指的是页面内容可以包含图片,视频,链接,声音等内容标签,通过一系列标签告诉浏览器该如何显示内容。
2024-07-19 11:00:03 1176
原创 maven
maven是Apache软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的jar,及jar之间的依赖关系(在A.jar文件中用到了B.jar会自动的去下载),可以完成项目的测试,编译,打包等工作maven是如何管理项目中依赖的jar文件?maven将常用的jar收集起来,在它的服务器上存储,每个jar都有独一无二的地址,我们在开发期间只需要将jar包的地址配置在项目配置文件中即可,借助maven就可以自动去官方下载jar文件到本地。
2024-07-17 18:35:36 1215
原创 java8新特性
这里我们直接创建了一个匿名内部类的对象,注意不是创建了接口/抽象类的对象,而是创建了一个类这个类没有名字,但是实现了该接口/抽象类中的方法,我们称之为匿名内部类,这样虽然简化了很多,也不用我们自己去创建类,但是其实上述代码,我们只关心的是compare这个方法的方法体,而不是该匿名内部类对象,所以为了再一次书写方便,简单,我们引入了lambda表达式。我们之前要在一些方法中传递接口/抽象类的对象时,要先自己写一个接口/抽象类的实现类,并实现里面的抽象方法,才能将接口/抽象类的对象当做参数进行传递.如下。
2024-07-16 22:43:34 920
原创 jdbc
jdbc:java数据库连接(java database connection)java程序可以连接不同的数据库,但数据库连接的具体细节有所不同,所以java中定义了一系列与数据库有关的类和接口,来实现java中的接口,,我们只需要将其导入到java程序中,再通过调用类中的方法来达到java连接数据库的目的总结:1.java连接数据库的细节是由数据库公司实现的,并将其打包成jar包2.我们使用不同的数据库就要去不同的数据库官网找到对应的jar包,来进行连接。
2024-07-16 10:18:54 837
原创 java线程
一定不要调用run()方法,如果调用该方法,那么并没有创建一个线程,该程序中还是main一个主线程,代码的执行逻辑仍然是从上向下执行,只有调用了start()方法才是真正创建了一个独立的线程。要想在java程序中创建一个线程,第一种方式是继承Thread类,实现其中的run()方法,将线程中想要执行的任务写在run方法中,再调用Thread中的start()方法。Objtct类中有wait()方法,notify()方法,notifyAll()方法,可以用来实现线程间的通信。
2024-07-10 19:12:08 741
原创 java异常
是指程序在运行过程中出现的不正常情况注意:代码写错了(编译期间检查出来的错误),不属于异常的范围当java提供的异常类不满足我们的业务需求时,我们需要自己定义一个异常类,来达到让程序在发生不正常现象时可以向用户给一定的提示性信息,使程序有一定的健壮性。
2024-07-09 07:42:43 793 2
原创 javaIO流(2)
字符流对数据的操作是以一个个字符为单位的,字符流只能读文本文件,并将读到的字节按照编码表转为对应的字符,Reader和Writer是字符流的两个最大的抽象类,InputStreamReader和OutputStreamWriter分别继承了Reader和Writer,它俩的功能就是将读取到的字节转换为字符,所以又被称为转换流。
2024-07-08 11:02:43 873
原创 java集合(2)
泛型就是将数据类型当做参数传递(参数化类型),注意这里的数据类型只能是引用数据类型,不能传递基本数据类型,这样就可以在编译期间检查传入的参数是否是规定的类型。
2024-07-07 08:05:11 1229
原创 HashMap中的put()方法
HashMap底层是由哈希表(数组),链表,红黑树构成,哈希表存储的类型是一个节点类型,哈希表默认长度为16,它不会每个位置都用,当哈希表中的元素个数大于等于负载因子(0.75)*哈希表长度就会扩容到原来的2倍。
2024-07-06 18:37:59 414
原创 ArrayList中的add()方法
无参构造就是让ArrayList底层数组的引用指向一个默认的Object类型的数组,该数组的默认长度为10,也就是说我们如果不通过有参指定数组的长度,那么底层默认的数组的长度就是10,即ArrayList的无参构造默认的初始长度为10。
2024-07-06 07:03:18 1059
原创 java集合(1)
我们经常需要存储一些数据类型相同的元素,之前我们学过的容器就是数组,但是数组存在一个问题1.数组的长度一旦确定就不能改变但是我们在实际开发中,往往需要动态增长的容器来帮我们存储数据,显然只用数组的话需要自己去创建新数组并拷贝元素,这大大降低了开发效率,所以java提供了底层不同实现的数据结构的容器称为集合Collection是一个接口,里面可以定义抽象方法,常量,静态方法,默认方法(jdk8及之后),该接口是单列集合的父接口,其中主要用于定义一些单列集合通用的方法,例如:单列集合的增删改查。
2024-07-05 21:39:43 721
原创 java常用类(3)
Calendar类是一个日历类,该类是一个抽象类,所以我们在使用时要创建他的子类对象,一般我们创建GregorianCalendar类的对象,该类就是现在我们使用的公历,Calendar类就是用来替代Date类中的一些方法的类。在java.util包中,Date类主要是一个日期类,Date类的对象主要用来记录对象被创建那一刻的时间,里面有很多获取关于时间的方法,只不过因为该类在JDK1.0时就已经被写好了,很多方法已经被抛弃了,有其他类替换了。注意:BigDecimal的构造方法中如果用到小数,一定要。
2024-07-03 18:05:05 1060
原创 java面向对象(3)
继承:将不同对象的相同特征抽取出来并创建一个类(父类),将相同的特征定义到父类中,在该对象的类中就不用重复定义,直接使用extends关键字继承该父类,就拥有该父类中的除私有的属性。(3)如果我们要显示写出super()去调用父类的构造方法时,必须写在子类的构造方法中的首行,这样做的目的是在子类中要用到父类的成员时,确保父类成员先初始化完成(先父后子)(1)@Override是java提供的一个注解标签,加了该标签的方法代表的是重写父类中的方法,这个标签不是必须的,但在重写方法时建议加上。
2024-07-03 15:36:31 630
原创 java常用类(1)
自动装箱底层其实就是调用静态方法valueOf(),而valueOf()方法底层有一个缓冲数组,如果要装箱的值在-128 -- 127之间,它会直接从该缓冲数组中获取,也就是说如果用 == 去比较两个值是否相等,是相等的,因为获取的是同一个对象,如果装箱的值不在这个区间,它会去new一个新的对象,也就是说如果不在这个区间你用 == 去比较,这两个对象的地址是不同的,即使他们两个值是相同的,但地址也不同。copyOf()方法,用于数组的复制,将一个数组中的内容复制到一个指定长度的数组中,并返回这个新数组。
2024-06-25 14:16:43 1021 1
原创 java面向对象(4)
(1)常量在接口中可以直接int num;通过定义变量的方式去定义常量,因为编译器会默认加上public static final,也就是说在接口中 int num == public static final int num;(2)抽象方法在接口中可以 void eat();这样来定义一个抽象方法,编译器会默认加上public abstract,也就是说在接口中 void eat() == public abstract void eat();(3)静态方法。
2024-06-23 21:12:02 2217
原创 java面向对象(1)
(1)发现类:将问题中的事务抽象成一个个类的过程类的声明格式:[访问权限修饰符] [修饰符] class [类名]访问权限修饰符:public,无(默认)修饰符:final,abstract关键字class用来定义一个类,类名首字母大写(2)发现类的共有属性(成员变量)成员变量的声明格式:[访问权限修饰符] [修饰符] type 变量名注意:(1)成员变量是定义在方法体之外,类当中的变量(2)成员变量的作用范围是整个类域。
2024-06-20 19:53:48 760
原创 java数组
(1)数组是用来存储一组相同数据元素的容器(2)java中的数组本身就是一个对象,是引用类型(3)数组一旦创建长度不可改变(4)数组的存储空间是连续的(5)数组中既可以存储基本数据类型,也可以存储引用数据类型。
2024-06-20 10:22:13 249
原创 java基础语法
注释:以某种特定的符号作为标记,对代码进行解释说明,方便理解代码,程序运行到注释不会执行注释分类:(1)单行注释(快捷键ctrl+/):用于单行的代码进行注释 //(2)多行注释(快捷键ctrl+shift+/):用于对多行代码进行注释 /**/(3)文档注释:用于对类,方法,变量进行解释说明的,一般在一个类的开头使用,调用时会有提示 /** */
2024-06-18 16:38:40 584 2
原创 java环境配置
(1)java应用范围广:安卓开发,大数据开发,服务器后端,游戏平台(2)java性能优越,生态丰富(3)java就业岗位多。
2024-06-17 20:12:15 1140 1
原创 GUI (java)
Swing是纯Java组件,使得应用程序在不同的平台上运行时具有相同外观和相同的行为。Swing中的大部分组件类位于javax.swing包中.Swing中的组件非常丰富,支持很多功能强大的组件关于GUI组件的类都在Swing包里。
2023-07-03 22:28:49 4566 10
原创 TCP字节流套接字编程(网络编程)
在start()方法中调用processConnection方法,而processConnection里在处理所有和这个连接有关的请求,只要这个连接不断开,这个while循环就不会结束,也就无法和下一个客户端进行连接了,有人可能会说那不用循环可不可以呢,答案是不可以,因为在String request = sc.nextLine()方法中可能会阻塞,即用户一直不输入信息。但是这里的clientSocket,数量多,每个客户端都有一个,生命周期也更短,跟随着当前这一个连接,客户端不连了就可以释放了。
2023-06-16 16:57:29 463 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人