- 博客(41)
- 收藏
- 关注
原创 git的使用
1、首先,选择一个合适的地方,创建一个空目录2、通过git init命令把这个目录变成Git可以管理的仓库 $git init3、编写一个文件例如 readme.txt在文件夹内部写上(注:将readme.txt放在库的目录下)Git is a version control system.Git is free software.将文件放入git仓库只要两步第一步:用命令git add将文件添加到仓库$git add readme.txt第二步:用命令git co
2020-07-05 21:28:12 82
原创 Gradle下载及安装(实习DAY2)
下载下载gradle地址:https://services.gradle.org/distributions/gradle-x.x-bin.zip 发行版gradle-x.x-src.zip 源码gradle-x.x-all.zip 全部文件公司大部分使用的是gradle-4.10.3版本,所以我下载的也是这个版本的gradle压缩包中的文件bin 启动文件init.d 初始化脚本都在这个目录lib gradle的依赖库,gradle本身是依赖jvm的,所以他的依赖库都是jar
2020-06-30 16:17:16 185
原创 sql基础查询语句
SQL Joins1、select * from tableA A inner join tableB B on A.key=B.key2、select * from tableA A Left join tableB on A.key=B.key3、select * from tableA A right join tableB B on A.key =B.key4、select * from tableA A left join tableB B on A.key=B.key where
2020-06-19 15:38:42 731
原创 MySQL 三大日志-binglog、redo log以及undo log
转载自https://mp.weixin.qq.com/s/A0Du0ipee7nzXN-fKG6K5g一条更新语句执行的顺序update T set c=c+1 where ID=2;a. 执行器先找引擎取 ID=2 这一行。ID 是主键,引擎直接用树搜索找到这一行。如果 ID=2 这一行所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。b. 执行器拿到引擎给的行数据,把这个值加上 1,比如原来是 N,现在就是 N+1,得到新的一行数据,再调用引擎接口写入这
2022-04-03 18:05:38 120
原创 单例模式(详解)
单例模式的扩展饿汉式懒汉式懒汉式(加锁synchronized)懒汉式(部分加锁synchronized)懒汉式(DCL)懒汉式(DCL)最终版静态内部类饿汉式/** * 饿汉式 * 类加载到内存后,就是实例化一个单例,JVM保证线程安全 * 简单使用:推荐使用 * 唯一缺点:不管用与不用,类加载时就会完成实例化 */public class Demo01 { //开始先新建一个对象 private static final Demo01 INSTANCE = new Demo01
2021-10-29 15:21:10 123
原创 spring详解
https://www.yuque.com/tsuiraku/spring5/yypfl3具体内容请进入查询 AOP内容解析的比较透彻容易理解
2021-01-30 14:26:46 69
原创 idea创建springmvc项目
**使用IDEA创建SpringMVC项目**第一步创建项目注意:第一次构建项目会比较慢,需要等待一段时间。第二步构建tomcat
2020-12-21 12:30:00 98
原创 XML
XMLXML是可扩展标记语言(eXtensible Markup Language)的缩写,它是是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。例如,一个描述书籍的XML文档可能如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE note SYSTEM "book.dtd"> <book id="1"> <name>Java核心技术</
2020-11-18 11:18:49 123 1
原创 存储过程
MySQL数据库的存储过程存储过程的优点:1)增强SQL语言的功能和灵活性:存储过程可以用控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。2)标准组件式编程:存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。3)较快的执行速度:如果某一操作包含大量的Transaction—SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的,在首次运行一个存
2020-11-18 11:11:29 81 1
原创 学习笔记13(JDBC)
JDBC事务数据库事务(Transaction)是由若干个SQL语句构成的一个操作序列,有点类似于Java的synchronized同步。数据库系统保证在一个事务中的所有SQL要么全部执行成功,要么全部不执行,即数据库事务具有ACID特性:Atomicity:原子性Consistency:一致性Isolation:隔离性Durability:持久性数据库事务可以并发执行,而数据库系统从效率考虑,对事务定义了不同的隔离级别。SQL标准定义了4种隔离级别,分别对应可能出现的数据不一致的情况:I
2020-09-12 16:50:24 67
原创 学习笔记12(发布Artifact)
发布Artifact当我们使用commons-logging这些第三方开源库的时候,我们实际上是通过Maven自动下载它的jar包,并根据其pom.xml解析依赖,自动把相关依赖包都下载后加入到classpath。那么问题来了:当我们自己写了一个牛逼的开源库时,非常希望别人也能使用,总不能直接放个jar包的链接让别人下载吧?如果我们把自己的开源库放到Maven的repo中,那么,别人只需按标准引用groupId:artifactId:version,即可自动下载jar包以及相关依赖。因此,本节我们介绍
2020-09-11 21:49:14 317
原创 学习笔记11(maven简介)
Maven在了解Maven之前,我们先来看看一个Java项目需要的东西。首先,我们需要确定引入哪些依赖包。例如,如果我们需要用到commons logging,我们就必须把commons logging的jar包放入classpath。如果我们还需要log4j,就需要把log4j相关的jar包都放到classpath中。这些就是依赖包的管理。其次,我们要确定项目的目录结构。例如,src目录存放Java源码,resources目录存放配置文件,bin目录存放编译生成的.class文件。此外,我们还需要配
2020-09-11 21:44:45 94
原创 学习笔记10(线程的状态)
线程的状态在Java程序中,一个线程对象只能调用一次start()方法启动新线程,并在新线程中执行run()方法。一旦run()方法执行完毕,线程就结束了。因此,Java线程的状态有以下几种:New:新创建的线程,尚未执行;Runnable:运行中的线程,正在执行run()方法的Java代码;Blocked:运行中的线程,因为某些操作被阻塞而挂起;Waiting:运行中的线程,因为某些操作在等待中;Timed Waiting:运行中的线程,因为执行sleep()方法正在计时等待;Termin
2020-09-10 22:20:23 59
原创 学习笔记9(新线程)
创建新线程Java语言内置了多线程支持。当Java程序启动的时候,实际上是启动了一个JVM进程,然后,JVM启动主线程来执行main()方法。在main()方法中,我们又可以启动其他线程。要创建一个新线程非常容易,我们需要实例化一个Thread实例,然后调用它的start()方法:public class Main { public static void main(String[] args) { Thread t = new Thread(); t.star
2020-09-10 21:48:43 76
原创 学习笔记8(注解)
使用注解什么是注解(Annotation)?注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”:// this is a component:@Resource("hello")public class Hello { @Inject int n; @PostConstruct public void hello(@Param String name) { System.out.println(name); } @Ov
2020-09-06 22:45:00 72
原创 学习笔记7(动态代理)
动态代理我们来比较Java的class和interface的区别:可以实例化class(非abstract);不能实例化interface。所有interface类型的变量总是通过向上转型并指向某个实例的:CharSequence cs = new StringBuilder();有没有可能不编写实现类,直接在运行期创建某个interface的实例呢?这是可能的,因为Java标准库提供了一种动态代理(Dynamic Proxy)的机制:可以在运行期动态创建某个interface的实例。
2020-09-06 17:00:19 67
原创 学习笔记6(class反射)
反射什么是反射?反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息。正常情况下,如果我们要调用一个对象的方法,或者访问一个对象的字段,通常会传入对象实例:// Main.javaimport com.itranswarp.learnjava.Person;public class Main { String getFullName(Person p) { return p.getFirstName() + " " + p.getLas
2020-09-06 00:15:02 67
原创 学习笔记5(Log日志)
Log日志记录和使用使用JDK Logging在编写程序的过程中,发现程序运行结果与预期不符,怎么办?当然是用System.out.println()打印出执行过程中的某些变量,观察每一步的结果与代码逻辑是否符合,然后有针对性地修改代码。代码改好了怎么办?当然是删除没有用的System.out.println()语句了。如果改代码又改出问题怎么办?再加上System.out.println()。反复这么搞几次,很快大家就发现使用System.out.println()非常麻烦。怎么办?解决方法
2020-09-05 22:00:14 163
原创 学习笔记4(异常处理)
异常的传播当某个方法抛出了异常时,如果当前方法没有捕获异常,异常就会被抛到上层调用方法,直到遇到某个try … catch被捕获为止:public class Main { public static void main(String[] args) { try { process1(); } catch (Exception e) { e.printStackTrace(); } }``
2020-09-05 21:12:41 68
原创 git的使用方法
1、首先,选择一个合适的地方,创建一个空目录[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzz3ZC99-1593923678962)(C:\Users\123\AppData\Roaming\Typora\typora-user-images\image-20200704171153307.png)]2、通过git init命令把这个目录变成Git可以管理的仓库 $git init3、编写一个文件例如 readme.txt在文件夹内部写上(注:将r
2020-09-05 20:45:15 95
原创 学习笔记3
在Java中,凡是可能抛出异常的语句,都可以用try … catch捕获。把可能发生异常的语句放在try { … }中,然后使用catch捕获对应的Exception及其子类。多catch语句可以使用多个catch语句,每个catch分别捕获对应的Exception及其子类。JVM在捕获到异常后,会从上到下匹配catch语句,匹配到某个catch后,执行catch代码块,然后不再继续匹配。简单地说就是:多个catch语句只有一个能被执行。例如:public static void main(Stri
2020-09-05 20:40:26 59
原创 学习笔记3
方法一:约定返回错误码。例如,处理一个文件,如果返回0,表示成功,返回其他整数,表示约定的错误码:int code = processFile("C:\\test.txt");if (code == 0) { // ok:} else { // error: switch (code) { case 1: // file not found: case 2: // no read permission: default:
2020-09-05 18:05:15 44
原创 学习笔记2
JavaBean如果读写方法符合以下这种命名规范:// 读方法:public Type getXyz()// 写方法:public void setXyz(Type value)那么这种class被称为JavaBeanboolean字段比较特殊,它的读方法一般命名为isXXX():// 读方法:public boolean isChild()// 写方法:public void setChild(boolean value)我们通常把一组对应的读方法(getter)和写方法(se
2020-09-05 17:00:04 44
原创 学习笔记
去除首尾空白字符使用trim()方法可以移除字符串首尾空白字符。空白字符包括空格,\t,\r,\n:" \tHello\r\n ".trim(); // "Hello"注意:trim()并没有改变字符串的内容,而是返回了一个新字符串。另一个strip()方法也可以移除字符串首尾空白字符。它和trim()不同的是,类似中文的空格字符\u3000也会被移除:"\u3000Hello\u3000".strip(); // "Hello"" Hello ".stripLeading(); // "H
2020-09-05 16:15:15 79
原创 git安装包
git官网:https://git-scm.com/download/wingit阿里镜像:https://npm.taobao.org/mirrors/git-for-windows/
2020-07-14 11:12:23 2009
原创 Spring5下载地址
Spring5下载地址:https://repo.spring.io/release/org/springframework/spring/
2020-07-12 11:00:14 882 1
原创 JavaScript简介
JavaScript概述1、javascript特点(1)语法简单,易学易用js语法简单,结构松散。可以使用任何一种文本编辑器来进行编写,js运行时不需要编译成二进制代码,只需要支持JavaScript的浏览器进行解释。(2)解释性语言非脚本语言需要经过编写>编译>链接>运行。脚本语言JavaScript需要经过编写>运行(3)跨平台js程序的运行依赖浏览器,只需要操作系统中安装有支持js的浏览器即可(4)基于对象的事情驱动js把html页面中每一个元素都当做一个对
2020-06-22 17:29:56 82
原创 数据库面试问题
以下是我在面试过程中遇到的一些面试问题查询表中一个表中王姓的同学select * from 表名 where 字段 like ”王%”;将表中王姓同学改为李姓update 表名 set 字段=replace(字段,”王%”,”李%”);查询某个表中id(不)为1,2,5select * from 表名 where id (not) in(1,3,5); 1、 select * from Student order by 学号 desc(降序)/asc(升序)2、 select 名字,分数
2020-06-20 17:22:55 164
原创 常用API
boolean startWith(String prefix)判断一个字符串是不是另一个字符串的前缀,开头boolean endWith(String prefix)判断一个字符串是不是另一个字符串的后缀,结尾String substring(int beginIndex,endIndex)获取字符串的一部分,返回新的字符串,包含头不包含尾boolean contains(String s)判断一个字符串中是否包含另外一个字符串int indexOf(char ch)查找一个字符,在字
2020-06-14 15:12:16 86
原创 static 和 finall
static既可以在声音属性的时候使用,也可以用其来声明方法,用它声明的方法有时也被称为“类方法”,可以由类名称直接调用。finall在java中表示的意思是最终的意思,也可以称为完结器,可以使用final关键字申明类、属性、方法,在声明要注意以下几点:(1)使用final声明的类不能有子类(2)使用final声明的方法不能被子类所覆写;(3)使用final声明的变量即成为常量,常量不可以修改。...
2020-06-09 09:27:04 220
原创 java中存在的4块内存空间
在java中主要存在4块内存空间,这些内存空间的名称及作用如下:(1)栈内存空间,保存所有的对象名称(更准确的说是保存了引用的堆内存空间的地址)(2)堆内存空间,保存每个对象的具体属性内存。(3)全局数据区:保存static类型的属性。(4)全局代码区:保存所有的方法定义。...
2020-06-09 09:25:53 131
原创 匿名内部类
Animal.javapublic abstract class Animal{ public abstract void eat(); public abstract void sleep();}Test.javapublic class Test{ public static void main(String[] args){ Animal a = new Animal(){ public void eat(){ System.out.println("在吃饭");
2020-06-09 09:23:40 51
原创 多态
多态中,成员特点:class Fu { int num = 4;}class Zi extends Fu { int num = 5;}class Demo { public static void main(String[] args) { Fu f = new Zi(); System.out.println(f.num); Zi z = new Zi(); System.out.println(z.num);
2020-06-08 08:57:48 65
原创 接口和抽象类的区别
接口和抽象类的区别:相同点:1、都位于继承的顶端,用于被其他类实现或继承;2、都不能直接实例化对象;3、都包含抽象方法,其子类都必须覆写这些抽象方法;区别:1、抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码的重用性,接口只能包含抽象方法2、一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了java的单继承)3、抽象类是这个事物中应该具备的内容,继承体系是一种is…a关系4、接口是这个事物中额外内容,继承体系是一种like…a关系二者的选用:1、优
2020-06-08 08:56:35 51
原创 java抽象类
学之前一直不理解,学这个抽象类做什么,要这个干嘛,直接用个普通的类不就行啦吗,还弄的这么麻烦,于是就去看了很多资料看到了一篇文章说的挺好的抽象类是为了更有利于代码的维护和重用因为抽象类不能实例化对象,所以必须要有子类重写他的属性和方法才能实现它。当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。1、 比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较
2020-06-08 08:55:50 92
转载 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
当出现这个问题时,说明你的内部文件有问题,这只是一个warnings,不是一个error,不影响运行,解决方法如下第一步第二步:将tomcat.util.scan.StandardJarScanFilter.jarsToSkip=/改为tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar最后重新运行一下tomcat就可以了...
2020-06-08 08:50:23 11039 2
原创 基本数据类型参数传递
/*方法,调用中的参数传递问题1、方法参数是基本数据类型*/public class MethodDemo{public static void main (String[] args){int a=1;int b=2;change(a,b);System.out.println(a);System.out.println(b);}public static void change(int a,int b ){a=a+b;b=b+a;}}
2020-06-01 20:27:02 132
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人