自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Marco___的博客

Java真的好简单

  • 博客(44)
  • 收藏
  • 关注

原创 MyBatis中执行完insert插入语句后,返回的自增主键总是1?

环境:MySQL5.7,MyBatis3.4.5在MyBatis的映射文件中有两种写法:一、<insert id="insUser" parameterType="com.hnlib.model.User" useGeneratedKeys="true" keyColumn="id" keyProperty="id"> insert into User (name,pas...

2019-10-01 23:31:28 785 1

原创 SpringMVC乱码问题的解决

一、设置Tomcat过滤器在web.xml中添加过滤器,注意要在所有过滤器之前。 <!-- spring的过滤器 解决请求中的字符编码问题 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web....

2019-09-28 16:43:24 189

原创 JQuery基本学习

JQuery一、选择器jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。jQuery 中所有选择器都以美元符号开头:$()。基本:元素选择器在页面中选取所有 <p> 元素,得到的是J...

2019-09-24 20:12:18 297

原创 三目运算符的返回值类型

三目运算符的返回值类型三目运算符的基本语法和用途就不再赘述了, 本篇本章主要讨论Java中三目运算符的返回值条件 ? 返回值1 : 返回值2 先来看一段测试代码:System.out.println(true ? 1 : 3.14); // out: 1.0上述代码输出的是浮点数1.0,可能感到疑惑,难道不应该输出整数1吗?其实在编译时, 就已经确定了三目运算的返回值类型,而且...

2019-09-14 14:01:23 4842

原创 JDBC获取INSERT语句自动生成的主键

JDBC获取INSERT语句自动生成的主键在 MySQL 的背景下, 通过JDBC使用 INSERT 语句新增了一条数据后, 如何返回刚才这条数据的主键, 已知该表只有一个主键(且自增), 且其它字段都不是唯一字段.第一方法是用刚才新增的数据通过 SELECT 语句来查询, 但是如果表中有完全相同的字段就无法完成了, 毕竟我们的表中只有主键是唯一的. 而且如果在新增了之后, 马上有人就对它进...

2019-09-14 10:49:10 744

原创 AJAX使用介绍

Ajax学习2005 年Jesse James Garrett 发表了一篇文章,标题为:“Ajax:A new Approach to Web Applications”。他在这篇文章里介绍了一种技术,用他的话说,就叫:Ajax,是Asynchronous JavaScript + XML 的简写。这种技术能够向服务器请求额外的数据而无须卸载页面(即刷新),会带来更好的用户体验。一时间,席卷...

2019-09-11 15:40:35 129

原创 Java中的四种引用关系

Java中的引用关系在JDK1.2之前, Java中的引用的定义很传统, 一个对象只用被引用和没有被引用两种状态.但是为了描述这样一类对象: 在内存足够时, 保留这些对象, 如果内存十分紧张, 则垃圾回收这些对象. 有很多应用场景符合这种描述,比如很多的系统缓存功能在JDK1.2, Java对引用的概念做出了扩充, 将引用分为了四种, 分别为强引用(Strong Reference), 软引...

2019-09-09 16:12:34 664

原创 Servlet学习笔记(一)

Servlet学习一. Servlet概述Servlet(Server + Applet) 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。二. Servlet API主...

2019-09-06 20:10:13 127

原创 解决Cookie中文乱码问题

解决Cookie中文乱码问题使用 java.net 包下的 URLEncoder 类将字符串重新编码, 和 URLDecoder 类对编码后的字符串解码URLEncoder 类:方法描述public static String encode(String str, String encode)使用特定的编码方案将字符串转换为 application/x-www-for...

2019-09-05 23:26:15 338

原创 Cookie、Session和Application的使用和区别

一. Cookie1. Cookie的执行过程Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息。服务器脚本发送一系列cookies至浏览器。比如名字,年龄,ID号码等等。浏览器在本地机中存储这些信息,以备不时之需。当下一次浏览器发送任何请求至服务器时,它会同时将这些cookies信息发送给服务器,然后服务器使用这些信息来识别用户或者干些其它事情。2. Cookie的常...

2019-09-05 23:01:25 1009

原创 JSP学习笔记(一)

JSP 学习一. JSP的执行过程以下步骤表明了Web服务器是如何使用JSP来创建网页的:就像其他普通的网页一样,浏览器发送一个HTTP请求给服务器。Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并...

2019-09-05 12:08:00 178

原创 JS学习笔记(二):Window对象

一. BOM概述BOM使得JavaScript能与浏览器进行“对话”,主要是Window对象的操作History对象Location对象Document对象二. Window对象Window对象表示浏览器中打开的窗口Window 对象是全局对象,可直接调用其方法和属性Window对象的一些方法和属性可省略不写注:通常把JavaScript程序写在window....

2019-09-02 19:53:54 166

原创 JS学习笔记(一): 基础

一. 什么是JavaScriptJavaScript是一种描述语言,==基于对象和事件驱动==的脚本语言JavaScript特点脚本语言(一种轻量级的编程语言)一种解释性语言(无需预编译)被设计为向HTML页面添加交互行为运行于客户端JavaScript组成DOM(Document Object Model文档对象模型):HTML和XML的应用程序接口(API)把整个页面...

2019-09-02 19:52:28 155

原创 JDBC的快速使用教程

MySQL的JDBCJDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现一. 将Jar包导入到项目中访问数据库需要用到第三方的类,这些第三方的类,都被压缩在一个.Jar的文件里。不同的数据库和不同的版本有不同的JDBC的Jar...

2019-08-30 20:10:49 131

原创 MySQL学习笔记(十二):字符集,校对规则和数据库引擎

MySQL中的字符集,校对规则和数据库引擎1. 字符集和校对规则数据库表被用来存储和检索数据. 不同的语言和字符集需要以不同的方式存储和检索. 因此, MySQL需要使用不同的字符集, 适应不同的排序和检索数据的方式.字符集为字母和符号的集合;校对为规定字符如果比较的命令MySQL支持众多的字符集, 下列语句可以查看字符集完整列表:show charset;这条语句显示所有可用...

2019-08-25 19:15:30 385

转载 MySQL学习笔记(十一): 数据库设计的三大范式

数据库设计的三大范式为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。比如某些数据库系统中需要用到“地址”这个属...

2019-08-24 17:23:03 180

原创 MySQL学习笔记(十): 存储过程

一. 存储过程(PROCEDURE)存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。优点:存储过程可封装,并隐藏复杂的商业逻辑。1. 触发器的创建存储过程无法使用 SELECT 指令来运...

2019-08-24 17:14:43 231 1

原创 MySQL学习笔记(九): 触发器

MySQL中的触发器(TRIGGER)触发器 是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。它在修改我们的特定表的时候,它才会触发,它不是用户所调用的,而是数据库自己去执行的。注意:它不能直接被调用,是由数据库主动去执行。1. 触发器的创建在 MySQL 5.7 中,可以使用 CREATE TRIGGE...

2019-08-24 17:14:08 287

原创 MySQL学习笔记(八): 视图

一. 视图(VIEW)视图 是一个虚拟表,是从数据库中一个或者多个表中导出来的表, 不保存任何数据。视图还可以从已经存在的视图的基础上定义.视图的作用:对复杂的SQL语句进行封装对于数据库敏感信息的保护注意:视图时一个虚拟表, 不保存数据视图在使用上和正常的数据表一样视图不包含数据,所以每次使用视图时,都必须执行查询中所需的任何一个检索操作。如果用多个连接和过滤条件创建了复...

2019-08-24 17:13:34 216

原创 MySQL学习笔记(七): 索引

索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。1. 创建索引创建表时添加建表后添加语法:ALERT TABLE 表名 ADD 索引类型(数据列名)主键索引(PRIMARY KEY)某一个属性组能唯一标识一条记录, 如:学生表(学号,姓名,班级,性别等),学号就是唯一标识的,可作为主键特点:最常见的索引类...

2019-08-24 17:13:01 127

原创 MySQL学习笔记(六): 事务

MySQL中的事务事务 就是将一组SQL语句放在同一批次内去执行. 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。**原子性:**一个事务(transaction)中的所有操作,...

2019-08-24 17:09:43 108

原创 MySQL学习笔记(五): 多表连接及子查询

MySQL中的多表连接及子查询一.多表连接数据表的多表连接查询比较常用的有内连接和外连接查询两种。1.内连接我们先来介绍下内连接查询,是通过 INNER JOIN … ON (可以缩写为 join)关键字实现的;具体语法如下:SELECT field1,field2,...fieldn from table_name INNER JOIN join_table ON join_co...

2019-08-24 17:06:51 288

原创 MySQL学习笔记(四): 数据的增删改查

MySQL中数据的增删改查1.添加数据新增数据的语法结构是:INSERT INTO table_name [(field1,field2...fieldn)] VALUES(value1,value2...valuen);一次插入多条数据:INSERT INTO table_name [(field1,field2...fieldn)] VALUES(value1,value2...v...

2019-08-24 17:05:18 195

原创 MySQL学习笔记(三): 数据表相关操作

MySQL中对数据表的操作1.新建数据表create table t_name( 属性名 数据类型 [约束...], 属性名 数据类型 [约束...], ...... 属性名 数据类型 [约束...])级联删除:在添加外键约束时,使用关键字 on delete cascade使用:当删除父表数据时,自动删除子表相关所有数据。语法:constraint 外键名 fore...

2019-08-24 17:03:52 222

原创 MySQL学习笔记(二): 数据库相关操作

一.在命令行下登录MySQLmysql -h 主机名 -P 端口号 -u root -p参数说明:-h: 所要登录的 MySQL 主机名(host), 登录本机(localhost 或 127.0.0.1)该参数可以省略;-P: 对应的端口号(port)-u: 用户名(username)-p: 密码(password)二. SQL语言SQL一共分三种:数据定义语言(Data...

2019-08-24 17:03:04 274

原创 MySQL学习笔记(一): 常用数据类型

一.MySQL中的常用数据类型1.数值类型整数类型字节最小值最大值TINYINT1有符号 -128无符号0有符号127无符号255SMALLINT2有符号-32768,无符号0有符号32767无符号65535MEDIUMINT3有符号-8288608无符号0有符号8388607无符号1677215INT/INTEGER4有符号-2...

2019-08-24 17:02:19 141

原创 Java中序列化对象的三种方法

序列化首先我们介绍下序列化和反序列化的概念:序列化:把Java对象转换为字节序列的过程,实现对象的持久化。反序列化:把字节序列恢复为Java对象的过程。“持久化”意味着一个对象的生存周期并不取决于程序是否正在执行:它可以生存于程序的调用的之间,它的属性,运行状态都将会被保存下来。对象的序列化主要有两种用途:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;(持久化对象)...

2019-08-11 21:31:02 1222

原创 Java中XML的解析与序列化使用

XML简介XML的作用数据存储:数据库提供了更强有力的数据存储和分析能力XML仅仅是存储数据XML与其他数据表现形式最大的不同是它极其简单,正是这点使XML与众不同数据交换由于各个计算机所使用的操作系统、数据库不同,因此数据之间的交换向来是件头痛的事可以使用XML来交换数据数据配置:使用XML配制文件可读性强,灵活性高解析XML目前最常用的XML解析技术...

2019-08-09 00:14:24 543

原创 Java中的数组使用

数组定义多个同类型的变量使用:声明数组(引用类型):数据类型[] 数组名;数组名:记录的是数组的地址信息数组类型:其实是数组里存储元素的类型数组是一种引用类型,类型为数组注意:方括号中不能有任何内容数组未完成初始化,无法通过编译int[] arr;System.out.println(arr); //Exception in thread "main" jav...

2019-08-04 11:51:09 129

原创 java.io.StreamCorruptedException: invalid type code: AC错误解决

最近做IO时,出现了一个我百思不得其解的错误。虽然经过一番谷歌,解决的bug,但是对于这一方面的底层知识还是有待去深入了解。借这个机会,好好学习一下。一般,可以使用ObjectInputStream把对象写出到文件,再使用ObjectOutputStream把对象读取出来。我以为这样做完美无缺,就像使用FileInputStream和FileOutputStream一样。1.问题直到我遇到这...

2019-08-03 21:29:11 4247 10

原创 Java中的switch

Switchswitch相较于if条件语句,有其独特之处,所以拿出来溜一下。语法:switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选...

2019-08-03 16:47:01 385

原创 C语言之字符串

字符什么是字符字符就是符号、图案,在计算机中以整数形式存储,当需要显示时会根据ASCII表中的对应关系,显示相应的符号或图案。字符类型(char)的数据(如字符A,a,0,$等)在内存中以对应的ASCII码存放,不同字符所对应的ASCII码见下表。计算机用一个字节(8个二进制位)存储一个字符,例如,字符A的ASCII码为65,它在内存中以如下形式存放:单个字符的输入/输出函数除了可...

2019-05-31 12:38:35 336

原创 C语言之堆内存管理

堆内存管理为什么使用堆内存栈内存的大小是有限的(堆内存的大小受物理内存限制)。栈内存中的数据释放是不受程序员控制的(函数结束后,属于它的栈内存就会被系统自动释放,它不适合长期存放数据)。如何使用堆内存堆内存无法与标识符建立对应关系(必须使用指针来指向堆内存)c语言中没有管理堆内存的语句(标准库提供了一套函数来管理堆内存)堆内存的管理和释放由程序员手动操作(显式调用函数来管理)...

2019-05-29 14:36:09 587

原创 使用异或实现两数交换

异或如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0 ^ 0 = 0,1 ^ 0 = 1,0 ^ 1 = 1,1 ^ 1 = 0(同为0,异为1)。这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。运算法则归零律:p ^ p = 0恒...

2019-05-21 21:03:17 994 1

原创 《剑指offer》最全Java版(1-20题)(长期更新)

前言《剑指offer》总结了许多面试中常见的算法题,对于提高编程和算法很有帮助。但是原书是用c语言实现的,我参考原书并加上自己的见解整理了Java版本的。但是碍于篇幅,很多细节可能无法交代清楚,更详细的版本和总结请见我的Github。本人代码小白,还在砥砺前行,考虑必有不周,欢迎交流指正。文章目录前言02_实现Singleton模式02_实现Singleton模式1、懒汉式(单线程版)[不...

2019-05-19 22:03:32 1170 1

原创 GitHub中的Markdown指南

什么是Markdown?Markdown是一种在网页上设置文字样式的方法。您可以控制文档的显示; 将单词格式化为粗体或斜体,添加图像和创建列表只是我们可以使用Markdown执行的一些操作。大多数情况下,Markdown只是常规文本,其中包含一些非字母字符,例如#或*。你可以在GitHub周围的大多数地方使用Markdown:文件问题和请求中的注释带.md或.markdown扩展名的文...

2019-05-19 18:29:42 2319 2

原创 C语言之指针详解(1)

什么是指针:指针(pointer)是一种数据类型(整数),这种类型定义出的变量叫指针变量(简称指针)。计算机的内存是由一个个字节组成的。内存的每个字节都有一个整数编号(十六进制),这个编号通常叫做地址。指针中存储的就是地址。 1bit 是最小的可用单位,能存储1或0;1byte = 8bit;1kb = 1024byte;1mb = 1024kb;1gb = 1024mb;1tb = 10...

2019-05-12 23:08:51 644

原创 C语言之变量的作用域与修饰关键字

变量的属性存储位置:变量使用的是哪一段内存作用域:变量的使用范围生命周期:创建时间~销毁时间变量的作用域全局变量:定义在函数外。存储位置:未初始化存储在bss,被初始化后存储在data作用域:整个程序。比如在a.c定义了全局变量,在b.c中也可以使用。生命周期:main函数执行前就被定义出,程序运行结束后再释放。局部变量:定义在函数内。存储位置:栈作用域:所在的函数...

2019-05-12 22:54:50 713

原创 C语言之程序在内存中的分段

程序在内存中的分段:当程序开始运行后,会加载到内存中,会把内存分成若干个段。每一段的功能、权限不同。代码段(code segment/text segment):程序中的二进制指令存储在此段,只读权限。通常是指用来存放程序执行代码的一块内存区域。只读段:存储常量、字符串字面值。可以把它和代码段合并看成一段。BSS段(bss segment):通常是指用来存放程序中未初始化的全局变量和未初始...

2019-05-12 22:42:33 1332

原创 C语言之printf简介

输入输出函数(printf 和 scanf)是C语言中非常重要的两个函数。输出函数的功能是将程序运行的结果输出到屏幕上,而输入函数的功能是通过键盘给程序中的变量赋值。可以说输入输出函数是用户和计算机交互的接口。其中 printf 的功能很强大,用法很灵活,比较难掌握;而 scanf 的用法相对比较固定,但也有很多需要注意的地方。本文我们先介绍printf 的用法,稍后再介绍scanf。如果在程序...

2019-04-29 21:49:29 4000

空空如也

空空如也

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

TA关注的人

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