自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 MyBatis使用时的注意事项

1. 使用何种映射器配置MyBatis 3之后的SQL语句映射既支持注解也支持XML配置,他们各有优势和缺点,在实例项目中应该如何选择可以参考如下建议:对于简单语句来说,注解使代码显得更加简洁,然而Java注解对于稍微复杂的语句就会力不从心并且会显得更加混乱。因此,如果你需要做很复杂的事情,那么最好使用XML来映射语句。当然,可以在项目中同时使用基于注解和基于XML配置2种形式的SQL语句映射,MyBatis是支持的。2. 对象生命周期和作用域SqlSessionFactoryBuilder这个类

2020-08-31 21:14:52 242

原创 Mybatis工作流程及其原理

一、MyBatis的重要组件Mybatis底层封装了JDBC,使用了动态代理模式。1.SqlSessionFactoryBuilder (构造器):使用Builder模式根据mybatis-config.xml配置或者代码来生成SqISessionFactory。2.SqlSessionFactory (工厂接口):使用工厂模式生成SqlSession。3.SqlSession (会话): 一个既可以发送 SQL 执行返回结果,也可以获取Mapper的接口。4.SQL Mapper (映射器):

2020-08-30 20:41:10 252

原创 MyBatis全局配置文件

一、全局配置文件mybatis-config.xml1.dtd约束xml文件的声明处引入dtd约束文件 ===》 规定xml中语法规则。(会自动提示)http://mybatis.org/dtd/mybatis-3-config.dtdidea中复制项目时,在工作空间中直接复制,然后修改名称;然后把里边该删除的文件删除(例如:.idea文件夹、删掉.iml为结尾的文件等),然后在idea中import导入选择create,然后一直点next就行。(复制完别忘了手动导入的jar包)上图情况就需

2020-08-27 19:47:11 190

原创 解析Java中接口的定义

使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:[修饰符] interface 接口名 [extends 父接口名列表]{[public] [static] [final] 常量; //全局常量[public] [abstract] 方法;  //抽象方法}修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。接口名:必选参数,用于指定接口的名

2020-08-26 15:14:24 155

原创 Java io流之字符流详解

字节流基类InputStreamInputStream:字节输入流基类,抽象类是表示字节输入流的所有类的超类。常用方法: // 从输入流中读取数据的下一个字节 abstract int read() // 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b中 int read(byte[] b) // 将输入流中最多 len 个数据字节读入 byte 数组 int read(byte[] b, int off, int len) // 跳过和丢弃

2020-08-25 14:56:57 134

原创 Java io流 之 字节流详解

字节流基类InputStreamInputStream:字节输入流基类,抽象类是表示字节输入流的所有类的超类。常用方法: // 从输入流中读取数据的下一个字节 abstract int read() // 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b中 int read(byte[] b) // 将输入流中最多 len 个数据字节读入 byte 数组 int read(byte[] b, int off, int len) // 跳过和丢弃

2020-08-24 16:59:44 119

原创 java语言的各种输入情况(ACM常用)

1.只输入一组数据:Scanner s=new Scanner(System.in);int a=s.nextInt();int b=s.nextInt();2.输入有多组数据,没有说明输入几组数据,每组数据占一行:Scanner s=new Scanner(System.in);while(s.hasnext()){//判断是否数据结束int a=s.nextInt();int b=s.nextInt();}3.输入多组数据,第一行为一个整数N,表示有N组测试数据,后面的接着又N组

2020-08-23 22:25:54 215

转载 你真的理解Java 字符串的不可变性吗?

一、背景字符串的不可变性可以说是面试中的一个常见的“简单的” 问题。常见的回答如:字符串创建后不可改变。字符串的不可变性是指字符串的字符不可变。String 的 value 字符数组声明为 final 保证不可变。真的是这样吗?下面我们再思考两个问题:那么字符串的不可变究竟是指什么?是如何保证的呢?下面看一个奇怪的现象:在程序一段程序的最后执行下面的语句居然打印了 “aw” 为什么?// 前面代码省略System.out.println("ab");建议大家先思考,然后再看下

2020-08-23 14:00:44 199

原创 Java 创建线程池的四种方式

1、newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。2、newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。3、newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。4、newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO,

2020-08-19 22:49:05 1457

原创 Java面向对象练习题之计算圆的面积和周长

创建一个圆Circle类。为该类提供一个变量r表示半径,一个常量PI表示圆周率;同时为该类提供两个方法:方法一用于求圆的面积,方法二用于求圆的周长;为该类提供一个无参的构造方法,用于初始化r的值为4。在main方法中测试。package hello.circle;/** * 2.创建一个圆Circle类。 * 为该类提供一个变量r表示半径,一个常量PI表示圆周率; * 同时为该类提供两个方法:方法一用于求圆的面积,方法二用于求圆的周长; * 为该类提供一个无参的构造方法,用于初始化r的值

2020-08-18 15:37:19 9647 1

原创 Java面向对象练习题之定义交通工具类型,控制速度

请定义一个交通工具(Vehicle)的类,其中有:属性:速度(speed),车的类型(type)等等方法:移动(move()),设置速度(setSpeed(double s)),加速speedUp(double s),减速speedDown(double s)等等.最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过构造方法给它初始化speed,type的值,并且打印出来。另外,调用加速,减速的方法对速度进行改变。package hello.vehicle;/** *

2020-08-17 16:23:26 1402

原创 Java面向对象练习题之猜数字游戏

一个类A有两个成员变量v、num,v有一个初值100。定义一个方法guess,对A类的成员变量v,用num进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。在main方法中测试package hello.guess;public class Guess { // 创建属性 private int a = 100; public static void main(String[] args) { int num; Guess

2020-08-16 22:20:59 596

原创 SSM框架的基本原理与优势

原理:1.Spring在java里面,要用类里面的方法,就需要先有类的对象,而类的对象就是new出来Spring就是用来简化这一步操作的框架Spring是一个容器,里面装了很多Bean即实体对象。之后要用到这些对象对应的类的方法,可以直接从容器里面拿,就不用再去new一个了2.SpringMVC首先理解好servlet是什么?Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序

2020-08-14 22:32:02 4235

原创 Java接口的定义与实现

一.定义Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。口定义的一般形式为:[访问控制符]interface <接口名> {类型标识符final 符号常量名n = 常数;返回值类型 方法名([参数列表]);}二.接口的特点Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化

2020-08-13 15:48:05 895

原创 Java多线程一些知识的总结

线程中run()和start()的区别:对于Thread对象来说,当你调用的是start(),线程会被放到等待队列,等待CPU调度,不一定马上执行;无需等待run()方法执行完毕,可以直接执行下面的代码;而调用的是run()的话,就是当做普通的方法调用,程序还是要顺序执行的;新建线程的几种方式:实现Runnable接口;里面实现run()方法;然后把这个实现了Runnable接口的类就新建为一个Thread t = new Thread(new (实现Runnable接口的类)),调用start

2020-08-12 22:57:24 72

原创 基于Java,实现一个冒泡排序算法

冒泡排序是一种简单基础的排序算法,相信在大学课堂里老师已经讲过了,现在我基于Java来实现一遍。简述冒泡排序正如其关键词一样,杂乱的气泡经过浮动,最后大的气泡飘到了上面而小的气泡在下面,无序的元素序列的排序规则也是如此,每次比较相邻的两个数值,如果前面的数值大于后面的数值则进行交换,最后会将本次遍历出来的最大数值排到最后位,然后按如此规则对剩余的无序序列进行类似的冒泡处理。算法描述比较相邻的两个元素,如果前面的比后面的大,则交换两个元素;对每每相邻的元素都进行这样的比较操作,从开始的一对到最后一

2020-08-11 22:15:05 145

原创 Java常用的包(package)有哪些?有什么作用?

常用的包有8个,分别是:1.Java.lang包这个包下包含了Java语言的核心类,如String、Math、Sytem和Thread类等,使用这个包无需使用import语句导入,系统会自动导入这个包中的所有类。2.Java.util包这个包下包含java的大量工具类/接口和集合框架类/接口。如Arrays和List、Set等。3.Java.net包这个包下包含了一些Java网络编程相关的类/接口。4.java.io包这个包含了一些Java输入/输出编程相关的类/接口。5.

2020-08-10 19:19:47 2262

原创 最简单易懂的java数组排序方法

1.快速排序首先是最简单的Array.sort,直接进行排序:public static void main(String[] args) { int[] arr = {4,3,5,1,7,9,3}; Arrays.sort(arr); for (int i : arr){ System.out.println(i); }点击运行即可输出已排序的数组数字。2.部分排序法使用Array.sort还可进行选择想要排序的部分数字,如将下角标编号为1~4的数字进行排序,

2020-08-09 21:56:59 6069

原创 Java中Scanner类的简单使用

Scanner是什么?Scanner是一个新的操作类,是在java.util包中提供的一个操作类,使用此类可以方便的完成输入流的输入操作。一个可以解析基本类型和字符串的简单文本扫描器。例如,以下代码使用户能够从 System.in 中读取一个数:public class ApiScanner { public static void main(String[] args) { //创建对象接收键盘录入的数据 Scanner sc = new Scanner(S

2020-08-07 19:23:04 164

原创 java基础 — 数组常用操作

常用的对数组进行的操作1、求数组中最大值,最小值思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max。最小值同样public class TestArray{ public static void main(String[] args){ int[] arr={23,45,234,576,34,87,12,67}; int max=arr[0]; int min=arr[0]; for(int i=0;i

2020-08-06 17:01:20 208

原创 Java基础 — 解析循环结构

1. 循环三要素:循环变量的初始化(这是循环的基础,起始点)循环的条件(循环的终点)循环变量的改变(循环的动力)2. Java循环结构主要有三种:for循环:适用情况:固定次数循环while:适用情况:“当…”循环do…while:适用情况:“直到…”循环1. for 循环for(初始化条件;循环条件;迭代部分){ 循环体;}// for循环内定义的变量只在循环内有效,初始化条件可以定义多个变量,但必须是同一类型,用逗号隔开。// 循环条件部分必须是Boolean,

2020-08-05 16:46:24 215

原创 Java基础之详解三元运算符

一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减–二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、赋值=三元运算符:需要三个数据才可以进行操作的运算符。三元运算符的格式数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;public class Demo10Operator { public static void main(String[] args) { int a = 10; int b = 2.

2020-08-04 20:34:09 433

原创 Java修饰符看这一篇就够了

java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下几种:*权限访问修饰符(可以用来修饰类、方法和字段)public:对任何人都是可用的。protect:继承的类可以访问以及和private一样的权限。default:包访问权限,即在整个包内均可被访问。private:除类型创建者和类型的内部方法之外的任何人都不能访问的元素。用法汇总:修饰类,修饰方法,修饰属性,修饰代码块。类:顶级类只能用public 修饰,顶级类不能使用private 和prote

2020-08-03 19:45:56 104

原创 Java基础之八大基本数据类型详解

整型:整数类型int    一般的数据long    极大的数据short   用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组byte   用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组byte、short、int、long都是整数类型,并且是有符号整数 分别占用1、2、4、8个字节。取值范围分别是-128—127、-2的15次方到2的15次方减一、-2的31次方到2的31次方减一、-2的63次方到2的63次方减一 byte在内存中占用一个

2020-08-02 22:29:52 184

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除