- 博客(39)
- 收藏
- 关注
原创 JDK,JRE,JVM三者关系
字节码:Java源代码经过虚拟机编译器编译后产生的文件(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机。采用字节码的好处:Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。JDK。
2023-07-03 10:52:32
172
原创 什么是事务,事务的隔离级别和传播行为
事务(Transaction)是访问并可能更新数据库中各项数据项的一个程序执行单元(unit)。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务结束有两种,事务中的步骤全部成功执行时,提交事务。如果其中一个失败,那么将会发生回滚操作,并且撤销之前的所有操作。
2023-04-11 19:37:33
229
原创 spring和mybatis的整合
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显 示内容。
2023-04-10 13:55:27
173
原创 Spring框架概述
在使用Spring框架后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制,这样,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是Spring的控制反转。简单说就是,在调用者的实例中声明一下被调用者,并生成一个被调用者的setter方法即可,然后在配置文件中依赖注入被调用者的Bean,实质就是调用了该Bean中的setter方法。业务逻辑各部分之间的合度降低,提高程序的可重用性,同时提高了开发的效率。
2023-04-03 19:03:29
335
1
原创 JAVA反射
反射可以在运行时获取一个类的所有信息,(包括成员变量,成员方法,构造器等),并且可以操纵类的字段、方法、构造器等部分。需要对象时,我们无需自己手动new对象,直接从Spring提供的容器中的Beans获取即可。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的defineClass 方法自动构造的。Class 类的实例表示正在运行的 Java 应用程序中的类和接口。加载的时候:Class对象的由来是将 .class 文件读入内存,并为之创建一个Class对象。//获取Class对象。
2023-04-03 08:42:05
66
原创 用注解完成增删改查和一对一多表联查动态sql
比如在以前的开发中,由于不确定查询参数是否存在,许多人会使用类似于where 1 = 1 来作为前缀,然后后面用AND拼接要查询的参数,这样,就算要查询的参数为空,也能够正确执行查询,如果不加1 = 1,则如果查询参数为空,SQL语句就会变成SELECT * FROM student where,SQL不合法。在订单类中添加User属性,User属性是一个引用类型,用于存储关联查询的用户信息,因为关联关系是一对一,所以只需要添加单个属性即可。当满足test条件时,才会将标签内的SQL语句拼接上去。
2023-03-20 19:25:16
179
原创 使用Mybatis入门完成增删改查
Object Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。Student类就对应student表,一个Student对象就对应student表中的一行数据。
2023-03-07 08:34:39
77
原创 使用MVC模式和分层完成商品的增删改查和模糊查询
这个是在服务端运行的,对浏览器来说是透明的。3.函数里面有三个参数,第一个是数组的每一项值(必选),第二个是数组下标(可选),第三个是原数组(可选)2.forEach()有三个参数,第一个是function()函数,第二个是对象;1.forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。()是重新定向,前后页面不是一个request。4.forEach()第二个参数对象,使第一个参数函数的this指向对象。写完后点击修改是这个页面就成功了在去尝试修改。在主页里添加注册,删除,和修改超链接。
2023-02-25 08:41:00
595
1
原创 Session方法
Session指的是在一段时间内,单个客户与web服务器的一连串相关的交互过程。在一个Session中,客户可能会多次请求访问同一个网页,也有可能请求访问各种不同的服务器资源。${user.name}User user = (User)request(搜寻范围).getAttribute(user);从当前页面起开始搜寻 user对象,然后获取该对象的name属性值。从作用域对象中自动获取数据,如果是对象可以通过,访问其属性。目的是为了获取{}中指定的对象(参数、对象等)的值。
2023-02-23 08:26:28
74
原创 使用idea完成假登陆
2.创建一个denglu.jsp作为登录页面,书写form表单指定提交地址和提交方式。4.创建一个Java类继承HttpServlet,在doPost中获取请求参数。在index.jsp首页中添加一个a标签,跳转到第二个登录页面。3.在web.xml中配置servlet的映射关系。然后使用response给前端作出响应作出响应。
2023-02-17 11:48:34
89
原创 idea中文乱码解决方案
打开File-Setting, 找到File Encodings这个选项,把encoding设置成你工程的编码即可,一般是UTF-8,如下图(红框的地方),然后重新rebuild一下,基本就行了。2)然后在 Server > VM options 设置为 -Dfile.encoding=UTF-8 ,重启tomcat。1)打开Run/Debug Configuration,选择你的tomcat。运行tomcat时,控制台乱码。文件设置日志输出的编码为。
2023-02-17 08:24:36
415
原创 在IDEA布置TomCat
等,web下面的WEB-INF目录里面的web.xml就是用来配置这个web项目的,在WEB-INF下面我们一般会建立一个lib文件夹用于存放项目所需的jar包。由于我已经配置过,所以自动选择,如果没有没有自动选择,点击configuration,点击+号,在tomcat选择自己的tomcat目录即可。创建好项目,我创建的项目名称为MyWeb,这个项目现在还是一个普通的java项目,想要开发 web程序,我们还要做一下操作。看见这个界面,表示已经配置好了 点击启动。首先创建JavaWeb。
2023-02-13 19:15:30
72
原创 Thread类、Runnable接口
Thread是实现了Runnable接口的类,使用run支持多线程因类的单一继承原则,推荐使用Runnable接口。
2022-12-27 20:38:20
322
原创 多线程交叉
在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理“。注:在JDK的安装路径下,src.zip是全部的java源程序,通过此代码找到Thread中的start()方法的定义,可以发现此方法中使用了private native void start0();在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。(2)对线程进行管理要求额外的 CPU开销,线程的使用会给系统带来上下文切换的额外负担。
2022-12-16 19:04:46
93
原创 String、Date、IO类的综合练习
/把字符串按照 " - " 解析出来4个数据,//日期类不同 需要进行格式转换为日期格式即为String---Date。使用循环判断是否为空,定义一个量,来承载数据,将上面的数据交给这个量。取出数组中第三个元素,是一个日期字符串,给它转换为对应的日期。存入数组 [张三,男,2000/08/15,河南南阳]读取D盘的a.txt文件内容封装到Student类中。首先在D盘创建文件名称为a类型为文本。想要获取内容,先读取文件。
2022-12-15 19:02:53
70
原创 字符流使用
BufferedReader/BufferedWriter,字符缓存流(处理流),与BufferedInputStream/BufferedOutputStream类似,增加了缓存机制,大大提高了读写文本文件的效率。public void write(char[] cbuf,int off,int len):写一个字符数组的一部分。public void write(char[] cbuf):写一个字符数组。字符流的两个抽象父类:字符输出流:Writer 和字符输入流:Reader。输入流:Reader。
2022-12-13 20:39:03
85
原创 输入流与输出流
字节流:InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。OutputStream:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。字符流:Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。按照流的流向来分,可以分为输入流和输出流。
2022-12-12 10:32:45
2992
原创 File类对象
File 类 就是当前系统中 文件或者文件夹的抽象表示通俗的讲 就是 使用File对象 来操作我们电脑系统中的文件或者文件夹学习File类 其实就是学习 如果通过file对象 对系统中的文件/文件夹进行增删改查
2022-12-07 18:54:06
97
原创 Date、SimpleDateFormat、Calendar的基本使用
调用一个抛出异常的方法,就必须的处理这个异常,要么throw,继续抛出这个异常,要么就try catch自己处理。String format(Date date) 按照指定的模式,把Date日期,格式化符合模式的字符串。2.调用SimpleFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期。Calendar类的常量字段是非常重要的参数,在set()、add()、get()方法中都会用到。写对应的模式,会把模式替换成对应的日期时间。
2022-12-02 19:53:35
194
原创 类String
String类代表字符串。Java 程序中的所有字符串字面值(如"abc")都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
2022-12-02 17:30:28
52
原创 ArrayList常用方法
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法。知道了如何使用ArrayList添加,那么结合Scanner类和Random类完成随机抽取一个名字。3.使用Scanner、Random、ArrayList完成一个不重复的点名程序。4.循环判断 如果集合中没有元素了,则结束循环。如果不想继续抽取则随便输入另外一个字母则结束抽查。
2022-11-27 16:23:21
224
原创 Scanner和Random的用法区别
Scanner类是java.util包中的一个类作用常用于控制台的输入,当需要使用控制台输入时即可调用这个类二、Scanner类的用法使用方法1、首先需要构造一个Scanner类的对象,并且与标准输入流System.in关联2、调用Scanner类对象sc的方法从输入流中获取你需要的输入说明:当创建了一个Scanner类对象之后,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给对象sc,若要获取需要的内容,调用sc的方法即可三、常用方法。
2022-11-24 18:56:49
171
原创 继承和接口
Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。子类重写了父类中的某一个方法,隐藏父类中的字段,假如想在子类中访问到父类中被重写的方法和隐藏父类的字段,可以在子类中通过使用关键字super来调用父类中被重写的方法和访问父类中被隐藏的字段。一个类通过继承接口的方式,从而来继承接口的抽象方法。
2022-11-20 16:05:57
1314
原创 面向对象以及封装
3.1事物与类的对比现实世界的一类事物属性: 事物的状态信息行为: 事物能够做什么java中用class描述事物也是如此:成员变量: 对应事物的属性成员方法: 对应事物的行为//成员变量//成员方法}代码示例//成员变量int age;//成员方法System.out.println("吃饭啦!!");}System.out.println("睡觉觉!");}System.out.println("学习!!");
2022-11-10 19:06:29
76
原创 抽象类的使用
那么父类的方法声明和方法体,只有声明还有意义,而方法体内容则没有存在的意义。我们把这种没有方法体内容的方法称为抽象方法。对象的抽象是类,类的具体化就是对象,也可以说类的实例就是对象。子类的对象放在父类的引用中,例如 Animal a=new Dog,子类对象当父类对象来使用。eat()方法,sleep()方法中睡6小时,还有wangwang()方法。 使用abstract关键字修饰成员方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。他的父类的无参的构造方法,即隐含的有super()。
2022-11-08 18:58:42
973
原创 JAVA的构造方法
没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动。3,主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。第三:构造方法不需要指定返回值类型,也不能写void,写上void表示普通方法,就不是构造方法了。9,自定义类中,如果不写构造方法,java系统会默认添加一个无参的构造方法。构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。
2022-11-05 14:12:53
412
原创 JDBC 1
JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。各数据库厂商根据IDBC的规范,实现自身数据库操作的功能代码,然后以jar包(数据库厂商提供的驱动包)的形式提供给开发人员使用,开发人员使用反射的机制创建这些具体实现类的兑现完成数据库的操作。//这是com.mysql.jdbc.Driver的静态代码块,只要使用这个类,就会执行这段代码。
2022-11-01 09:36:41
69
原创 JQuery 2
对象1.insertBefore(对象2): 将对象1添加到对象2前边。对象1.insertAfter(对象2):将对象1添加到对象2后边。对象1.after(对象2): 将对象2添加到对象1后边。对象1.append(对象2): 将对象2添加到对象1元素内部,并且在末尾。对象1.prepend(对象2):将对象2添加到对象1元素内部,并且在开头。对象1.prependTo(对象2):将对象1添加到对象2内部,并且在开头。对象1.appendTo(对象2):将对象1添加到对象2内部,并且在末尾。
2022-11-01 09:30:58
76
原创 Jquery初级
jQuery是一个优秀的JavaScript库,是一个凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档,操作DOM,执行动画和开发Ajax的操作。jQuery的过滤器必须用在jQuery选择器后,表示对通过前面的jQuery选择器选择到的内容的过滤。jQuery对象是jQuery函数的一个实例,是一个类数组对象,数组中存放的是DOM对象,而DOM对象是Node的实例。jQuery库只提供了一个叫jQuery的函数,该函数中以及该元素的原型中定义了大量的方法。
2022-10-19 19:24:05
869
原创 js总结8
onblur()/onfocus():窗口失去/获得焦点时触发。onscroll():窗口的滚动条被拖动时触发。onresize():窗口的大小改变时触发。onkeypress:按下然后松开一个键。onfocus:下拉列表获得焦点时触发。onerror():遇到执行错误时触发。onunload():对象被卸载后触发。onblur:下拉列表失去焦点时触发。onchance:选项发生改变时触发。onload():对象装载完成后触发。options:所有下拉选项的数组。length:下拉选项的个数。
2022-09-28 17:30:43
78
原创 js总结7
go("url" or number):加载History列表中的一个URL或要求浏览器移动指定的页面数。replace("url"):通过加载URL指定的文档来替代当前文档。assign("url"):加载URL指定的新的HTML文档。forward(): 加载History列表下的一个URL。go(1)代表前进1页,等价于forward()方法。back():加载History列表上的一个URL。History对象:有关客户访问过的URL的信息。go(-1)代表后退1页,等价于back()
2022-09-26 20:01:37
57
原创 js总结6 文档对象
getDate() 从 Date对象返回一个月中的某一天(1~31)getMilliseconds()返回Date 对象的毫秒(0~999)getHours() 返回Date对象的小时(0~23)getMinutes() 返回Date对象的分钟(0~59)getSeconds() 返回Date对象的秒数(0~59)没有属性,只有获取或 getDay() 从 Date 对象返回一周中的某一天(0~6)[1-9])]((1/2)[O-9])|30|31)$/
2022-09-23 20:35:40
208
原创 js总结5
1.var time =new Date() 获取的是当前时间(包括日期)1.1console.log(Math.ceil(12.3)) 返回一个大于该数字的最小整数。1.2console.log(Math.floor(12.3)) 返回一个小于该数字的最大整数。1.3console.log(Math.round(12.7)) 返回一个四舍五入的整数。1.4console.log(Math.pow(2,3)) 返回x的y次幂。
2022-09-21 19:28:36
103
原创 js总结4
影响用户操作、完成交互、如OnClick、OnKeyDown。"的方式进行操作,如document.forst.value。一般可以分为鼠标事件、键盘事件及其他事件、function 函数名(参数列表)(函数体)用于存储一系列字符,使用单引号或双引号包含。属性是指对象包含的值,使用"开发人员根据自己的需要而定义新对象。1.1自定义对象,使用Object。构造函数中的this指的是当前对象。可以使用索引访问字符串中任何的字符。用于获取各种数学常量及数学函数。使用单引号和双引号包含。一、属性、方法和事件。
2022-09-20 13:36:21
96
原创 js总结 3
1.3、表达式1”仅在第一次循环时执行,以后都不会再执行,可以认为这是一个初始化语句。1) 执行到 for 语句时,先给 i 赋初值1,判断 i
2022-09-15 13:11:59
72
原创 js总结分支2
= ===的区别:==表示值相等 ,===表示值相等,数据类型也必须相等。比较运算符 ==、!如何判断一个年份是否是闰年,条件:年份是否可以被400整除,或者该年份是否,算术运算符 +、 -、 *、 /、 %、 ++、 --、 -结合运算符 *= /= += -= %=:如果是true=a,如果是false=b。不绝对等于:数据类型不一致或者数值不相等。1.4、三元运算符 条件表达式?逻辑运算符 &&、||、!
2022-09-13 18:49:41
57
原创 js的声明总结1
可以使用script标签引入一个外部的js文件,同时要注意在该标签内是不能写js代码的,即使写了也不会执行 使用scripy引入js文件后,就不能使用alert编写标签 即使写了也不会实行alert。注意事项:js代码在script标签内,script标签可以放在head,body标签内,也可以写在body外,html标签外 知识点:但是建议写在body标签的最下面。parseInt:将字符串转换成整数.parseInt(),会将小数点后面的数字给去掉,不会进行四舍五入。对象类型(Object)
2022-09-12 19:44:18
231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人