自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Springboot利用 MyBatis 使用数据库

Springboot项目测试原生JDBC连接加载依赖包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId></dependency> <dependency> <groupId>mysql</gro

2021-03-14 22:29:17 227

原创 SpringBoot2.x异步任务的使用方法

异步任务,和使用SpringBoot2.x开发异步任务实战启动类里面使用@EnableAsync注解开启功能,自动扫描定义异步任务类并使用@Component标记组件被容器扫描,异步方法加上@Async使用SpringBoot2.x开发异步任务Future获取结果定义异步任务类需要获取结果注意点:要把异步任务封装到类里面,不能直接写到Controller增加Future 返回结果 AsyncResult(“task执行完成”);如果需要拿到结果 需要判断全部的 task.isD.

2021-03-13 19:30:03 221

原创 SpringBoot 中 devtools热部署的设置和使用

什么是热部署应用正在运行的时候升级功能, 不需要重新启动应用对于Java应用程序来说, 热部署就是在运行时更新Java类文件好处:不需要重新手工启动应用,提高本地开发效率常见实现热部署的方式JrebelSpring Loadedspring-boot-devtools第三个是 SpringBoot 专用的一个工具,上面两个是在其他项目也可以使用的SpringBoot2.x使用dev-tool实现热部署步骤pom文件添加依赖包<dependency>

2021-03-08 16:22:34 208

原创 显示网页时钟,和顶级窗口

显示网页时钟在 js 中有一个内置类是日期类,支持类:date,可以用来获取时间/日期<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>获取下拉列表选中项的 value</title></head><body><script type="text/javascript"> //获

2021-01-16 11:35:58 356 1

原创 利用 JDBC做用户登录系统(使用 PreparedStatement防止 SQL 注入)

public class JDBCTEST { public static void main(String[] args) { //初始化界面 Map<String, String> userLoginInfo = initUI(); boolean loginSuccess = login(userLoginInfo); System.out.println(loginSuccess ? "登录成功" : "登录失败")

2020-11-30 19:42:39 222

原创 MAC 中使用JDBC连接MySQL

JDBC 全称是 JAVA DataBase Connectivity(JAVA 语言连接数据库)JDBC 的本质是一套接口,面向接口调用,面向接口写实现类面向接口编程:是为了解耦合,提高程序的扩展力(多态机制就是非常经典的:面向抽象编程)...

2020-11-30 15:46:54 2404

原创 java用反射来得到class 文件

反射机制的作用:可以查看编译文件(class 文件)public class demo1 { public static void main(String[] args) { String s = "abc"; Class x = s.getClass();//这里的 x 代表 String.Class 字节码文件,x 代表String 类型 Class c1 = null; try { c1 = Class

2020-11-18 20:43:39 380

原创 JAVA注解的简单使用

注解,或者叫注释类型,annotation注解 Annotation 是一种引用数据类型,编译之后也是生成 xxx.class 文件自定义注解:[修饰符列表] @interface 注解类型名{ }(在新建的时候,有专门的 annotation 选择)注解的使用:注解使用的语法格式是:@注解类型名注解可以出现在类上,属性上,方法上,变量上等,甚至可以是注解类型上...

2020-11-18 20:36:20 548

原创 对象流中序列化与反序列化,transient

在内存里的信息要存到硬盘中,就需要进行序列化,反过来,则是需要反序列化的。在序列化和反序列化的时候就是需要利用对象流对象流ObjectOutputStream 和 ObjectInputStream序列化就是将一个完整的对象,切成一小块一小块的,在网络上从内存中传输到硬盘当中,每一个块小块都有自己的编号,所以可以通过反序列化,进行还原序列化:Serialize,java 对象存储到文件中,将 java 对象的状态保存起来的过程反序列化:DeSerialize,将硬盘的数据重新恢复到内存当中,恢复

2020-10-26 14:39:54 135

原创 JAVA 中的 final的简单用法,表示最后最终的意思了

final 是一个关键字可以修饰变量以及方法,还有类如果一个类,因为需要不让别人继承了,那么在类前面加一个 final再继承就会报错final class A{ }class B extends A{ }并且,final 只能赋值一次,然后就不能再赋值了。引用也是一样但引用内部的数据是可以修改的。并且不能采用系统默认值,必须手动初始化Person p = new Person();//这个 p 就改不了了,但 p 里面的成员变量的值,是可以修改的final .

2020-09-24 10:19:48 186

原创 JAVA 中的 super 关键字

super 是一个关键字把它和 this 对比起来看this:this 能出现在实例方法和构造方法中不能使用在静态方法中它大部分还能省略,但是当出现了实例变量和局部变量一样时,是不能省的语法是 有 this. 和 this()(这个用法比较特殊,只能出现在构造方法的第一行,目的是代码复用)super:super能出现在实例方法和构造方法中super不能使用在静态方法中它大部分也是能省略,语法是 有 super. 和 super()(只能出现在构造方法第一行,通过当前的构造方法

2020-09-21 09:46:50 224

原创 JAVA 的多态里的向下转型和向上转型问题,附带 instanceof 运算符

多态的基础语法向上,向下转型这里先说两个概念:向上转型:是指从子类到父类向下转型:是从父类转到子类JAVA 中允许向上转型和向下转型。但是他们之间必须是有继承的关系向上转型Animal a = new Cat();向下转型如果想访问的方法,在父类中没有,是子类中特有的,就必须使用向下转型了(强制类型转换)比如下例中,cat 中的抓老鼠方法是特有的public class demo1 { public static void main(String[] args) {

2020-09-20 10:27:21 460

原创 JAVA 简单面向对象简单的账户取款

public class demo1 { public static void main(String[] args) { Account a = new Account("1000",2000,1.23); Customer c = new Customer(a,"Jane Smith"); c.getAct().deposit(100); c.getAct().withdraw(960); c.getAct().wi

2020-09-17 16:02:26 237

原创 C#之接口和显式接口的基本写法

值类型在复制的时候,传递的是这个值的本身int n1 = 1;int n2 = n1;n2 = 2;引用类型在复制的时候,传递的是对这个对象的引用(相当于是把地址给复制过去了)

2020-08-26 15:36:44 412

原创 c#中的多态的不同实现方法,利用虚方法和抽象类 (利用多态求圆和矩形的周长和面积)

实现多态的3种方法虚方法抽象类接口虚方法构成重写关键词:virtual和override下列例子同样用方法Run,但引用Vehicle和引用Car两种实例的时候,打印出来的语句是不一样的。也就是说,用不同类型实例调用方法的时候,与实例相关联的版本就会被调用,是父类的Run被重写了static void Main(string[] args) { var car = new Car(); car.Run();

2020-08-25 14:48:31 778

原创 C#中StreamReader和StreamWriter的操作的操作

StreanmReader和StreamWriter他们是操作文本的,操作字符的之前学的FileStrea类,是操作字节的,就是可以操作所有的文件,而且可以处理大文件StreamReader的操作using(StreamReader sr = new StreamReader (@"/Users/ttfiles/Desktop/new .txt", Encoding.Default))//使用这个来读取一个文本文件 { while (!sr.E

2020-08-24 22:11:21 470

原创 FileStream流的使用-----读取数据,写入数据 (使用此方法完成文件的复制)均有详细的注释

读取数据的用法代码中就有了大量注释,在此我就不做过多的说明了static void Main(string[] args) { Console.WriteLine("--------------------"); FileStream fsread = new FileStream(@"/Users/ttfiles/Desktop/new.txt",FileMode.OpenOrCreate,FileAccess.Read);

2020-08-24 21:50:09 862

原创 List泛型集合--对应的ArrayList;Dictionary集合--对应Hashtable(装箱与拆箱问题)

List泛型集合在ArrayList中,长度可以随意改变,并且可以存入各种类型的数据。但是当要使用这个集合数据的时候,由于是object类型,每次使用里面需要的内容都要进行强制转换为自己需要的类型,就比较麻烦。泛型集合与数组一样,只能存放规定的固定的类型数据 //创建泛型集合对象 List<int> list = new List<int>();//<>里面是写要的类型 list.Add(123); list.AddRange(

2020-08-24 17:42:14 245

原创 C#中的HashTable,有点类似字典

HashTable 也被称为键值对集合,也就是其他语言里说的字典类直接先放例子,来感受一下,是个什么样子的static void Main(string[] args) { //创建一个键值对集合对象 Hashtable ht = new Hashtable(); ht.Add(1, true); ht.Add(2, "Tom"); ht.Add("001", 'f'

2020-08-23 23:02:52 496

原创 C#中的ArrayList集合

static void Main(string[] args) { ArrayList list = new ArrayList();//创建了一个集合 /*集合:很多数据的一个集合 数组:长度不可变,类型单一 集合的好处是长度可以任意变化,类型随意*/ list.Add(1); list.Add("hahaha");

2020-08-23 22:06:15 853

原创 C#之继承的基本知识点

之前写了一个刘铁猛老师类的继承,但是讲的比较笼统,适合作为学过但是忘记的人使用。本次写的会更加的零基础,小白一点继承也是为了避免代码冗余,比如人类,就会有姓名性别年龄等共有的特性,但是人类下面的分支会有各种不同的特点。例如人类下的老师,会教书。学生,要写作业。厨师,会做菜。于是创建他们的类的时候,不需要再重新对姓名性别年龄等共有的特性重新定义,只需要定义他们的特点就好了。这就是类的继承的作用于是,上述的人类就是父类,它的东西可以提供给下面继承的子类使用,子类就是例如老师,学生,厨师这样的继承的语法c

2020-08-23 16:29:20 202

原创 c#中字符串类型的多种使用方法

字符串的不可变性当我们用int 类型,int a = 1;但是当我们重新赋值2之后,1的值就没了。但是在string类型中就不一样了,当我们string a = “Tom"以后,再重新对a进行赋值"Jerry” 之前的“Tom”并没有被消去,而是在堆内另外开辟一个空间存储Jerry,然后栈中的a会指向这个新的地址。Tom仍然占用一个存储空间把string看做char类型的一个只读的数组string s = "abcde"Console.WriteLine(s[0]);使用.ToStri

2020-08-23 00:38:36 450

原创 C#稀碎的知识($的作用,@的作用,前++与后++,ToString的问题,File的用法,访问修饰符)持续更新

var name = "张三";var age = 23;var sex = "男";var message = string.Format("我叫{0},我的年龄为{1},我的性别是{2}", name, age, sex);var show = $"我叫{name},我的年龄为{age},我的性别是{sex}";Console.WriteLine(message);Console.WriteLine(show);也可以使用占位符var name = "张三";var age = 23

2020-08-21 23:32:46 271

原创 C#中利用入门面向对象,使用构造器和方法写一个记录不同公里有不同价格的一个Ticket类

在这个类里的要求是:创建一个只读属性的距离,和一个只读属性的价格,价格是每公里一块钱,但是当公里到了一个范围的时候,会打折。于是整体的代码是:class Program { static void Main(string[] args) { Ticket t = new Ticket(100); t.ShowTicket(); } } public class Ticket

2020-08-21 21:56:03 678 1

原创 C#中面向对象的初级知识(对象的实例化和this关键词,属性,静态与非静态,构造函数)

一开始是从面向对象——>面向过程所谓面向过程:面向的是完成这件事的过程,强调的是完成这件事的动作。前面记录过了关于类的定义以及写法,但是没有具体写关于创建类的对象的过程,也就是实例化过程,这里补充一下实例化过程就是创建一个对象,关键词是“new”类是不占内存的,但是创建一个对象之后,会开辟一个内存下面,便是一个简单的例子,创建一个对象,然后使用其中的属性和方法(可以看到其中包含了this这个关键词,this表达的是当前这个类的对象)class Program {

2020-08-21 21:51:16 493

原创 C#中记录一个方法的小练习(只能输入两个数字,其他字符会提示重新输入,且第一个数字不能大于第二个数字,计算他们之间的和)

class Program { static void Main(string[] args) { Console.WriteLine("please input the first number"); string s1 = Console.ReadLine(); int number1 = GetNumber(s1); Console.WriteLine("pleas

2020-08-20 16:36:42 313

原创 C#中的ref参数的使用

先通过通过一个小例子来说明ref的作用 static void Main(string[] args) { double ss = 100; Add(ss); Console.WriteLine(ss); } public static void Add(double s) { s += 5; }这可以很明显知道,ss传进了方法

2020-08-20 14:53:34 4790 1

原创 C#中out参数的使用(两个例子:1.返回多个不同类型的参数。2.利用out做一个登陆消息提示)

在使用out前,先说一个,如果想在一个方法中返回多个值的时候,且这些值的类型相同,比如要你写一个方法,它要返回一个数组中的最大值,最小值,平均值和参数的话。那么这个方法可以用数组来实现,一个数组返回4个值。//将要返回的4个值,放到一个数组中返回 public static int[] GetMaxMinSumAvg(int[] nums) { int[] res = new int[4]; //假设res里的第一个是最大值,

2020-08-20 13:56:07 1414

原创 C#入门中的方法基本操作(利用方法判断是否为闰年)

方法就是将一堆代码进行重用的一种机制,也就是在C中称作的函数。这段代码中,可能有输入的值(参数),可能会有返回值。一个方法就是专门做这一种事的人,我们调用它来完成一些事情,它可能需要我们提供给它一定的数据,然后返回给我们一定的结果。语法是这样的:public static void Calculate() { //方法体 }public:访问修饰符+static:静态的(这两个都是自己选择性添加)+返回值类型:上面我写的是void,有的是int类型的返

2020-08-19 17:19:35 380

原创 用C#实现冒泡排序(附带每步详细的注释说明)

int[] num = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };//创立一个数组是这样的,要冒泡排序 for (int i = 0; i < num.Length-1; i++) //外层循环,用i来确定要有多少个数比较 //共有10个数,那么总共要有9个数来比较,又因为为了保持下标一致,如果i从0开始取,从0到8才是9个数,所以是i<长度-1 { for (int j = 0; j < num.Length-1-i; j++) .

2020-08-19 16:42:30 451

原创 C#中稍复杂的数据类型(常量,枚举,结构,数组)

常量用const声明一个常量,是不能被多次赋值的。与普通的变量不同const int number = 10;//赋值后就不能变了枚举它就是一个变量类型,只是枚举声明,赋值,使用的方式稍微有点不一样枚举类型默认是可以跟int类型相互转换 也就是和int类型是兼容的。(说明枚举类型默认是从0开始的)枚举类型的转换class Program { static void Main(string[] args) { Gender

2020-08-19 15:47:08 240

原创 C#中的类型转换(Convert,Parse,Try Parse)三种

显式类型转换:需要满足两种类型相兼容语法——(待转换的类型)要转换的值int n = (int) 10.6;Convert转换(保留小数位数)两个变量不兼容,使用Convert转移,比如double和stringstring s = "123";double d = Convert.ToDouble(s);int a = 10;int b = 3;double c = a*1.0/b;Console.WriteLine("a除b的结果是{0:0.00}",c);//这里的冒号之后是

2020-08-19 11:49:43 1329

原创 C#中判断是否为闰年

判断是否是闰年static void Main(string[] args) { Console.WriteLine("输入要判断的年份"); int year = Convert.ToInt32(Console.ReadLine()); //年份能被400整除 //年份能被4整除带伞不能被100整除 bool b = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);

2020-08-18 23:32:17 1243

原创 用C#求出100—999的水仙花数

static void Main(string[] args) { for (int i = 100; i <= 999; i++) { int a = i / 100; int b = i % 100 / 10; int c = i % 10; if (Math.Pow(a,3)+ Math.Pow(b,3)+

2020-08-18 21:59:50 456

原创 用C#找出1到100中的质数,并所有质数的和。 判断一个数是不是质数,如果不输入数字就重新输入

static void Main(string[] args) { int sum = 0; for (int i = 2; i <= 100; i++) { bool b = true; for (int j = 2; j < i; j++) { if (i%j == 0)

2020-08-18 21:10:53 886

原创 什么是捕获异常以及基本语法

语法上没有错误,在程序运行的过程当中,由于某些原因程序出现了错误,不能再正常的运行了这时我们需要使用try-catch来进行异常捕获(try和catch之间不要有代码)try{ 可能会出现的异常;}catch{ 出现异常后执行的代码;}如果try中的代码出现了异常,那么异常的那一句后面即使有代码也不会执行了但是这里存在一个 问题,即变量的作用域,在try里面的变量,在外面的语句是不能访问到的try{ int number = Convert.ToInt32(Console.R

2020-08-18 20:31:04 1372

原创 索引相关基本知识

索引是什么,有什么用:索引相当于一个目录,通过目录可以快速找到相对应的资源。在数据库方面,查询一张表的时候有两种方式:全表扫描根据索引检索(效率很高)(提高效率的根本原理是缩小了扫描的范围)虽然可以提高索引效率,但是不能随意添加索引,因为索引也是数据库中的对象,也需要数据库不端的维护。是有维护成本的。比如,表中的数据经常被修改这样就不适合添加索引,因为数据一旦修改,索引需要重新排序,进行维护。添加索引是给某个字段,或某些字段添加索引select ename ,sal from

2020-08-15 17:46:46 283

原创 事务(transaction)的简单介绍

什么是事务一个事务,是一个完整的业务逻辑单元,不可再分。比如银行账户转账,从A账户向B账户转账1k,需要执行两条update语句;update t_act set balance = balance - 1000 where actno = 'act-001'update t_act set balance = balance + 1000 where actno = 'act-002'以上两条DML语句必须同时成功,或者同时失败,不允许出现一条成功,一条失败那么,就需要使用数据库的“事务机制

2020-08-14 15:49:25 1423

原创 什么是类型(值类型与引用类型)以及类型的作用,还有它的分类

什么是类型类型又名数据类型是一些性质相同的值是数据在内存中存储时的“型号”在内存中,占据多大的空间编程语言的数据类型与数学中的不完全相同c#的五大数据类型类(classes):如Windows,Form,Console,String结构体(Structures):int32,int64,Single枚举(Enumerations):如visibility 是限定永固在集合中选定有效值时使用的接口(Interfaces)委托(Delegate)分类如下:分为了引用类型和

2020-08-12 17:04:47 2048

原创 sql里的非空约束,唯一约束,主键和外键约束

约束约束(Constraint)是为了保证表中数据的完整性,合法性以及有效性。例如注册账户的时候有各式各样的格式,规定和要求。非空约束(not null):指这个数据必须填写,不能为null唯一性约束(unique):这个字段的是不能重复的主键约束(primary key):既不能为null也不能重复外键约束(foreign key):检查约束(check)(mysql不支持,但是Oracle有):一般usename(唯一性约束)  password(非空约束)非空约束 not null可

2020-08-12 15:57:35 3685

空空如也

空空如也

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

TA关注的人

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