JAVA
文章平均质量分 70
关于Java的相关知识
肖帆咪
好事多磨
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Git学习
git作为团队开发的重要工具,需要我们每个人牢记和熟练使用每一个命令原创 2022-07-14 21:04:49 · 305 阅读 · 0 评论 -
SpringMVC的搭建和详细配置
1.导包<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.2.RELEASE</version></dependency>原创 2021-07-13 09:47:02 · 1200 阅读 · 3 评论 -
创建一个Spring集成MyBatis的项目
选择java EE创建一个项目项目目录config.properties文件关于数据库的相关数据driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis_db?characterEncoding=utf8&serverTimezone=Asia/Shanghaiuname=rootpassword=rootdb.xml<?xml version="1.0" encoding="UTF-8"原创 2021-07-13 09:46:18 · 234 阅读 · 3 评论 -
Spring框架(五)--Spring事务管理和Spring事务传播行为
Spring事务管理事务可以看做是由对数据库若干操作组成的一个单元作用:保证用户的每一个操作都是可靠地,每一个操作都必须成功,只要发生异常就回退到事务未操作的状态,要么都完成,要么都取消,保证一致性的要求事物的特性:原子性 隔离性 持久性 一致性Spring事务管理分两种类型:1.编程式事务:在代码中需要自己写代码实现事物的提交和回滚2.声明式事务:只要生命哪个方法需要在事务中执行,Spring就会知道添加事物的提交和回滚操作Spring事务管理方式:1.基于xml配置<1.原创 2021-07-10 19:40:57 · 302 阅读 · 2 评论 -
Spring框架(四)--AOP面向切面编程
AOP(Aspect Oriented Programming 面向切面编程)不使用 AOP 的开发方式的例子先定义好接口与一个实现类,该实现类中除了要实现接口中的方法外,还要再写两个非业务方法。非业务方法也称为交叉业务逻辑:不使用aop,我们需要显式调用AOP概述AOP是OOP的延续,利用AOP可以对业务逻辑的各个部分进行隔离,降低业务逻辑部分间的耦合度,提高代码的重用性和开发效率AOP和OOP的关系:OOP是针对业务处理过程的实体及其属性,行为进行抽象封装,使得更加清晰高效的逻辑单元划原创 2021-07-09 14:58:44 · 320 阅读 · 0 评论 -
Spring框架(三)--Spring JDBC
Spring 是个一站式框架:Spring 自身也提供了控制层的 SpringMVC 和 持久层的 Spring JdbcTemplate。以前我们的写法package com.spring0.test;import com.alibaba.druid.pool.DruidDataSource;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class J原创 2021-07-08 23:22:16 · 252 阅读 · 0 评论 -
Thread多线程样例--龟兔赛跑
public class RaceRG implements Runnable{ private static String winner; @Override public void run() { for (int i = 0; i <= 1000; i++) { //兔子跑到一半休息一会 if (Thread.currentThread().getName().equals("兔子") &&原创 2021-06-30 11:22:03 · 252 阅读 · 0 评论 -
Spring框架(二)--Spring Bean管理
Spring Bean管理基于 xml 配置方式bean 配置需要 spring 管理的类id 生成的对象名class 全类名name 对象别名,可以为多个scope:singleton(默认值):在 Spring 中只存在一个 bean 实例, 单例模式. prototype:原型 getBean()的时候都会 new Bean()request:每次 http 请求都会创建一个 bean, 仅用于 WebApplicationContext环境session:同一个 http ses原创 2021-06-13 13:12:23 · 318 阅读 · 0 评论 -
Spring框架(一)--spring搭建和IOC
Spring概述什么是spring?Spring是一个轻量级的,IOC和AOP的java开发框架,是为了简化企业级应用开发而生.Spring优点轻量级的 使用的jar包非常小,Spring框架运行占用的资源非常小,运行效率高非侵入式的 编写业务类是不需要继承spring特定的类,通过配置完成依赖注入后就可以使用IOC Inversion of control,由Spring IOC容器管理对象,面向接口式编程,使耦合度降低AOP 通过Spring提供的AOP功能,方便进行面向切面的编原创 2021-06-09 21:27:32 · 313 阅读 · 1 评论 -
JVM学习(三)--JVM运行时数据区图文详解
JVM运行时数据区1.运行时数据区组成概述java8虚拟机规范规定,java虚拟机所管理的内存将会包含以下几个运行时数据区域:1.1程序计数器(Program Counter Register)程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器1.2java虚拟机栈(Java Virtual Machine Stacks)描述的是java方法执行的内存模型,每个方法在执行的同时都会创建一个线帧用于存储局部变量表,操作数栈,单台连接,方法出口等信息,每个方法调用到执行完成原创 2021-05-31 12:53:16 · 492 阅读 · 2 评论 -
MyBatis--动态sql
动态sqlMyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。动态 SQL 可以彻底处理条件地串联 SQL 字符串减少程序员的压力,让程序员将更多地精力投入开发业务中。MyBatis 中用于实现动态 SQL 的元素主要有:If 标签可以对传入的条件进行判断#{}占位符,预编译,先编译好sql语句在取值,防止sql注入(传值时使用)${}拼接符,会传入参数字符中,取值后再编译sql,不能防止注入${}适用于select * from user order by ${name}原创 2021-05-27 16:53:06 · 2000 阅读 · 32 评论 -
MyBatis懒加载(延迟加载)
懒加载(延迟加载)需要查询关联信息时,使用 Mybatis 懒加载特性可有效的减少数据库压力,首次查询只查询主表信息,关联表的信息在用户获取时再加载。Mybatis 一对一关联的 association 和一对多的 collection 可以实现懒加载。懒加载时要使用 resultMap,不能使用 resultType。启动懒加载Mybatis 默认没有打开懒加载配置,需要在 SqlMapperConfig.xml 中通过settings 配置 lazyLoadingEnabled 来开启懒加载。原创 2021-05-27 12:05:25 · 1438 阅读 · 8 评论 -
JVM学习(二)--类加载和双亲委派机制
JVM结构-类加载文章目录JVM结构-类加载1.类加载子系统的作用2.类加载ClassLoader的角色3.类加载过程3.1加载3.2链接3.3初始化类什么时候初始化类的初始化顺序4.类加载器的分类4.1引导类加载器(启动类加载器BootStrap ClassLoader)4.2扩展类加载器(Extension ClassLoader)4.3应用程序类加载器(系统类加载器Application ClassLoader)5.双亲委派机制工作原理:双亲委派优点:6.沙箱安全机制作用:防止恶意代码污染java源原创 2021-05-26 10:31:59 · 331 阅读 · 4 评论 -
JVM学习(一)--概述和模型
文章目录1.1为什么学习JVM作用一:面试需要作用二:中高等程序员的必备技能1.2VM是什么1.3JVM的作用特点:1.4JVM的位置JVM是运行在操作系统之上的,与硬件没有直接的交互.1.5JVM的整体组成简单示意图:详细示意图1.6各个组成的用途1.7java的执行流程1.8JVM架构模型基于栈式架构的特点基于寄存器式架构特点1.1为什么学习JVM作用一:面试需要 不懂JVM可以写出优质的代码,也可以做出优秀的项目,那么为什么要学习JVM?因为面试官最喜欢问的就是关于JVM的东西作用二:中高等原创 2021-05-25 22:35:55 · 515 阅读 · 6 评论 -
使用IDEA搭建MyBatis环境
创建一个项目这里根据需求自己选择在pom.xml中导入mybatis的核心jar包Mybatis 源码下载https://github.com/mybatis/mybatis-3/releases在resources下创建一个mybatis-config.xml文件写入mybatis框架的核心配置文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org/原创 2021-05-21 19:24:05 · 1508 阅读 · 19 评论 -
Maven安装配置以及maven项目创建
Maven文章目录Maven为什么学习mavenMaven简介Maven中的各种概念Pom(Project Object Model 项目对象模型)项目坐标仓库Maven开发环境搭建常用jar包坐标制作不易,如果对你有用,请一键三连吧!为什么学习maven解决寻找jar包的问题解决jar包依赖问题解决jar包的管理问题解决项目编译问题Maven简介maven是Apache乳尖基金会的一个开源项目,它是用来帮助开发人员管理项目中的jar以及jar之间的依赖关系,完成项目的编译测试打包和发布原创 2021-05-20 16:54:09 · 398 阅读 · 11 评论 -
Java反射机制
Java反射机制文章目录Java反射机制Java反射的概念和作用Java反射的概念Java反射的作用Java反射相关APIClass 类型Constructor 构造方法Field 属性Method 方法问题:–如果仅仅知道一个类的类名,能否动态得到类的定义信息,包括哪些方法,属性等?答案:可以通过反射做到Java反射的概念和作用Java反射的概念JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获原创 2021-05-19 15:40:27 · 216 阅读 · 8 评论 -
XML
XML什么是XML htmlXML 指可扩展标记语言(Extensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输,存储数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。<?xml version="1.0" encoding="UTF-8"?><!-- XML作用:传输,存储数据,而非显示数据 缺点:语法繁琐 XML 标签没有被预定义。您需要自行定义标签。原创 2021-05-17 18:08:24 · 812 阅读 · 1 评论 -
Ajax异步操作和Json的相关学习
AjaxAjax 全称为:“Asynchronous JavaScript and XML”(异步 JavaScript和 XML),使用 Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了用户体验。Ajax其实质是利用浏览器提供的一个特殊的对象(XMLHttpRequest)异步地向服务器发送请求,服务器返回部分数据,浏览器让你去利用这些数据对页面做部分的更新,整个过程,页面无刷新,不打断用户的操作同步目前与服务器端的交互方式是同步,当客户端与服务器交互时,客户端就不能进行其他操作,只原创 2021-05-16 18:46:27 · 303 阅读 · 3 评论 -
Web项目实践-学生信息管理系统
技术支撑前端(html css js jquery) 后端(javaEE) 数据库mysql +tomcat开发流程需求分析对学生信息进行 增,删,改,查学号,姓名,性别,生日,电话,地址,年级,课程数据库设计学生表 studentId,num,name,sex,birthday,mobile,address,gradeId,adminId(操作人id),oper_time年级表 gradeId,name课程表 courseId,name选课表(学生课程关系) student_原创 2021-05-14 10:16:51 · 1514 阅读 · 0 评论 -
EL表达式和JSTL标签
EL表达式和JSTL标签文章目录EL表达式和JSTL标签EL表达式概述EL表达式语法El表达式操作符EL隐式对象JSTL核心标签条件标签迭代标签迭代标签JSTL格式化标签format标签EL表达式概述什么是EL表达式?EL即Expression Language(表达式语言)简称EL,通过EL可以简化在JSP开发中对对象的引用,从而规范页面代码,增强程序的可读性及维护性。EL的功能 替代JSP页面中的复杂代码EL的特点自动转换类型使用简单EL表达式语法以“${”作为开始,以原创 2021-05-13 15:14:24 · 276 阅读 · 0 评论 -
监听器和过滤器
过滤器–过滤器位于客户端和web应用程序之间,用于检查和修改两者之间流过的请求–在请求到达Servlet/JSP之前,过滤器截获请求。•Servlet API 中,与过滤器有关的API共有三个接口,分别是 –Filter –FilterChain –FilterConfigimport javax.servlet.*;import java.io.IOException;public class EcodingFilter implements Filter { @Ov原创 2021-05-11 11:57:45 · 219 阅读 · 7 评论 -
JSP中的Cookie
Cookie概念通过cookie对象,可以从服务器端向客户端响应一些信息,这些信息可以存储在浏览器的内存中,浏览器关闭,数据就不存在.可以给cookie中的信息设置有效时间,就可以保存在电脑硬盘上,到期后自动删除Cookie是保存在客户端的小文本,保存的位置分两种–Cookie可以保存在客户端浏览器的所占内存中,关闭浏览器后,Cookie就不再存在。–Cookie也可以保存在客户PC机的硬盘上,设置有效时间,超过有效时间后失效。在ServletAPI中,存在类Cookie,可以使用new关键字创原创 2021-05-11 11:57:31 · 1328 阅读 · 2 评论 -
JSP内置对象
JSP内置对象在jsp页面中可以不加声明和创建就可以在脚本中使用。JSP脚本中包含9个内置对象:1.out向客户端输出2.request 封装用户请求3.response 向用户做出响应4.session 客户和服务器间的会话5.application 于服务器启动时开始运行,用来存放全局变量,在用户间共享6.pageContext 用于访问page的各种对象7.exception 异常8.config 初始化要用的参数9.page JSP页面本身out向客户端输出<%@原创 2021-05-11 11:57:15 · 313 阅读 · 0 评论 -
JSP--指令元素
JSP(Java Server Pages)JSP概述JSP(Java Server Pages) 是由Sun公司倡导、多家公司参与, 于1999年推出的一种动态网页技术标准。中文名叫java服务器页,其根本是一个简化的Servlet设计。在HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。在之前学习过servlet,最后引入了jsp解决动态页面的问题,那么JSP和Servlet的联系有哪些区别又有什么呢?JSP在本质上就是Servlet,但是两者的创建方式不一样,jsp运行原创 2021-05-11 11:56:53 · 418 阅读 · 0 评论 -
Servlet和Http学习
1. Servlet概述•Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序,它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法,Servlet和客户通信采用“请求/响应”的模式。•Servlet的作用: 1.接收用户发送的请求 2.调用其他的java程序来处理请求 3.根据处理结果,服务器将响应返回给客户端2. Servlet创建和使用1.创原创 2021-05-04 20:51:32 · 2245 阅读 · 23 评论 -
使用IDEA创建Web项目并发布到tomcat
Web开发1.web开发概述•学习web开发,需要先安装一台web服务器,将开发好的web项目部署在web服务器中供外界访问.WEB服务器有很多,流行的WEB服务器有Tomcat、 WebSphere 、WebLogic、Jboss等。在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Apache 的Tomcat,该服务器支持全部JSP以及Servlet规范.Tomcat安装配置Tomcat官方站点:http://tomcat.apache.org获取Tomcat安装原创 2021-05-04 17:40:56 · 6504 阅读 · 25 评论 -
与数据库连接:JDBC
目录JDBC概述JDBC搭建PreparedStatement和Statement1.代码的可读性和可维护性.statementPreparedStatement2、最重要的一点是极大地提高了安全性. 防止sql注入statementPreparedStatement结果集处理创建Student类ResultSet中的next()方法获得下一行数据获得一个表中的所有数据JDBC概述JDBC(Java DataBase Connectivity)java数据库连接是一种用于执行SQL语句的Java AP原创 2021-03-01 11:28:22 · 344 阅读 · 2 评论 -
内部类
内部类把类定义在另一个类的内部,该类就被称为内部类•内部类一般来说包括这四种:成员内部类成员内部类——就是位于外部类成员位置的类特点:可以使用外部类中所有的成员变量和成员方法(包括private的)/*外部类 */public class Outer { //外部类成员 private int age = 20; //成员内部类 //static class Inner{ 静态内部类,只能访问外部类中的静态成员 class Inner {原创 2021-01-30 17:19:45 · 241 阅读 · 4 评论 -
GUI编程--图形用户界面
GUI编程GUI java写的图形用户界面swing 包下提供了许多的组件组件容器组件:窗口组件 面板组件功能组件:文本框,按钮…常用容器JFrame类的构造方法setSize(int width, int height)//设置长宽setVisible(boolean b)//设置窗口可视化setTitle(String title)//设置窗口标题setLocation(int x,int y)////以左上角为坐标轴0点,设置窗口打开的初始位置setResizable(fa原创 2021-01-30 17:18:12 · 768 阅读 · 0 评论 -
线程(下)--线程通信&&消费者问题
线程通信就是多个线程之间相互牵制,相互调度执行wait();让线程等待,进入阻塞状态,不会自动唤醒notify();唤醒等待的线程,如果有多个,那就唤醒优先级高的notifyAll();唤醒所有等待的线程案例:交替打印1-100的数1.使用lock锁,实现Runnable的方法import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurre原创 2021-01-30 17:13:37 · 214 阅读 · 4 评论 -
线程(中)
线程的状态start();启动线程 就绪状态(等待CPU的加载) 当线程获得了CPU的执行权,进入到运行状态 当线程失去CPU执行权(因为CPU需要轮流执行其他线程),进入待就绪状态 当线程中所有任务执行完以后,进入死亡状态yield();线程主动让步sleep();让线程休眠指定时间,进入阻塞状态t.join();线程合并,等待t进程执行完后,其他进程再执行stop();强制让线程销毁public class ThreadDemo extends Thread{原创 2021-01-30 17:12:14 · 222 阅读 · 4 评论 -
线程(上)
线程程序:为完成特定任务,用某种语言编写的一组指令的集合,即一段静态代码进程:正在执行的程序,加载到内存中执行线程:进程可进一步细化为线程,是一个进程内部的最小执行单元进程与线程的关系一个进程中可以包含多个线程,一个线程只属于一个进程,线程不能脱离进程存在.一个进程至少包含一个线程,即主线程.例如java中的main就是所有进程共享进程资源在主线程中可以创建并启动其他线程多线程多线程:在一个进程中,可以拥有多个线程,执行多个任务何时需要多线程?程序需要同时执行多个任务多线程的优原创 2021-01-18 18:57:41 · 197 阅读 · 2 评论 -
网络编程
网络编程计算机网络将不同地理位置的计算机,通过网线,使多台计算机通过软件可以共享数据java提供的网络类库,将实现细节隐藏起来网络的通讯要素IP/端口号:精确找到计算机某台主机网络通信协议:快速传输数据IP地址:InetAddress唯一的标识 Internet 上的计算机本地回环地址(hostAddress):127.0.0.1主机名(hostName):localhost端口号不同的进程有不同的端口号被规定为一个 16 0~65535InetAddress类Internet原创 2021-01-18 18:55:08 · 221 阅读 · 2 评论 -
IO流--字符流
字符流字符流,以字符为单位读写数据Reader转换流 InpuStreamReaderFileReaderBufferedReaderWriter转换流 OutStreamWriterFileWriterBufferedWriterReader 的基本方法 读取一个字符并以整数的形式返回, 如果返回-1已到输入流的末尾。Writer 的基本方法向输出流中写入一个字符数据,该字节数据为参数b的16位FileReader&&FileWriter p原创 2021-01-18 18:51:47 · 347 阅读 · 3 评论 -
IO--输入输出流
输入及输出•输入输出(I/O)把电脑硬盘上的数据读到程序中,称为输入,即input,进行数据的read操作从程序往外部设备写数据,称为输出,即output,进行数据的write操作•InputStream和OutputStream的子类都是字节流-可以读写二进制文件,主要处理音频、图片、歌曲、字节流,处理单元为1个字节。•Reader和Writer的子类都是字符流 主要处理字符或字符串,字符流处理单元为1个字符。 字节流将读取到的字节数据,去指定的编码表中原创 2021-01-10 19:57:31 · 246 阅读 · 1 评论 -
IO流--File类
File类一个File的对象就表示一个计算机中的文件或者目录(文件夹) /* File类的构造方法的3种方式 */ File f =new File("D:/Users/17509/Desktop/非凡/IO/demo.txt"); String p="D:/Users/17509/Desktop/非凡/IO/"; File f1= new File(p,"demo.txt"); File f2= n原创 2021-01-09 17:18:36 · 202 阅读 · 1 评论 -
Map&&Collection类
MapMap通过键值对存储键不能重复,值可以重复HashMappublic class HashMapDemo { /** * HashMap 键值对 * 键是无序的,如果有重读的键后面的值会覆盖上一个键的值 * 可以存储一个为null的键 */ public static void main(String[] args) { HashMap<String,String> hashMap = new HashMap&原创 2021-01-09 17:17:09 · 189 阅读 · 1 评论 -
Set--HashSet&&TreeSet
SetSet不能存储重复元素HashSetHashSet无序存储public class HashSetDemo { public static void main(String[] args) { HashSet h = new HashSet(); h.add("a"); h.add("b"); h.add("a"); h.add("w"); h.add("s"); h.ad原创 2021-01-09 17:16:01 · 340 阅读 · 13 评论 -
List--Vector
Vector底层是数组实现的 public static void main(String[] args) { /** * v= new Vector<>() 在创建Vector对象时,就已经创建底层存储数组,长度为10 * Vector中的方法都是线程安全的 */ Vector<String> v= new Vector<>(); v.add("a");原创 2021-01-09 17:11:14 · 195 阅读 · 1 评论
分享