- 博客(28)
- 收藏
- 关注
原创 最全MySQL面试题整理
MySQL一、事务说一说事务事务指的是满足ACID特性的一组操作,可以使用commit提交一个事务,也可以使用Rollback进行回滚什么是事务的ACID属性原子性(Atomicity):事务被士为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚回滚可以通过回滚日志实现,回滚日志记录着事务所执行的修改操作,在回滚的时候反向执行这些操作即可一致性(Consistency):数据库在事务执行前后都保持一致性状态,在一致性状态下,所有事务对一个数据的读取结果都是相同的
2020-08-13 10:30:39 456
原创 最全JVM面试知识整理
JVM面试知识整理一、Java内存模型Java内存模型线程私有的:程序计数器、虚拟机栈、本地方法栈线程共享的:堆、方法区、直接内存(非运行时数据区)JDK1.8前:JDK1.8后:程序计数器程序计数器是Java运行时数据区中唯一不可能发生内存溢出异常的内存空间。程序计数器主要有两方面的功能:虚拟机字节码解释器能够通过改变程序计数器实现流程控制的功能,如顺序执行、选择、循环、异常处理等。程序计数器还能够保存当前线程的执行位置,当线程被切换回来的时候就能够知道上次执行到哪了如
2020-08-13 10:25:09 225
原创 MySQL常用操作(六)
MySQL常用操作一、游标游标只能用于存储过程(和函数)游标使用步骤:使用游标前,必须声明它声明后,游标必须打开以供使用,这个过程用前面定义SELECT语句把数据实际检索出来对于填有数据的游标,根据需要取出各行游标使用结束后,必须关系游标声明游标后,可根据需要频繁打开和关闭游标。在游标打开后,可根据需要频繁地执行取操作创建游标CREATE PROCEDURE processorders()BEGIN DECLARE ordernumbers CURSOR FOR
2020-05-28 19:53:09 651
原创 MySQL常用操作(五)
MySQL常用操作一、使用视图1.视图视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询此查询用来检索订购了某个特定产品的用户SELECT cust_name,cust_contactFROM customers,orders,orderitemsWHERE customers.cust_id = orders.cust_idAND orderitems.order_num = orders.order_numAND prod_id = 'TNT2';假如可以把整
2020-05-28 19:52:37 202
原创 MySQL常用操作(四)
MySQL常用操作一、插入数据毫无疑问,SELECT是最常用的SQL语句了。但是,还有其他3个经常使用过的SQL语句需要学习。第一个就是INSERT,INSERT是用来插入(或添加)行到数据库表的1.插入完整的行INSERT INTO customersVALUES(NULL,'Pep E. LaPew','100 Main Street','Los Angeles','CA','90046','USA',NULL,NULL);上例插入一个新客户到customers表,存储到每个表列中的数
2020-05-24 00:51:10 288
原创 MySQL常用操作(三)
MySQL常用操作一、联结表联结SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表,联结是SQL中的SELECT能执行的最重要的操作1.关系表外键:为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系分解数据能更有效地存储,更方便地处理,并且具有更大地可伸缩性,但是这些好处是有代价的。如果数据存储在多个表中,为了在单条SELECT语句中检索数据,此时需要使用联结2.创建联结全限定列名:在引用的列可能出现二义性时,必须使用全限定列名(用一个点分隔的表名和
2020-05-21 20:45:09 294
原创 MySQL常用操作(二)
MySQL常用操作一、创建计算字段计算字段并不存在于数据库表中,计算字段是运行时在SELECT语句内创建的字段:基本上于列(column)的意思相同,经常互换使用,不过数据库列一般称为列,二术语字段通常用在计算字段的链接上Concat拼接字段SELECT Concat(name,' (',age,')')FROM mytableORDER BY name;Concat拼接串,即把多个串连接起来形成一个较长的串,上例输出name (age)RTrim()函数删除右侧多余的空格
2020-05-20 15:28:40 205
原创 常用排序算法总结+源代码
排序稳定性:排序前后具有相同关键字的记录的相对顺序不发生改变,则该排序算法是稳定的适用性:排序算法适用于顺序存储结构还是链式存储结构1.选择排序首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小的元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它于数组的第二个元素交换位置。如此往复,直到整个数组排序。对于长度为N的数组,选择排序需要大约n(n-1)/2次比较和n次交换时间复杂度与初始顺序无关平均时间复杂度最好时间复杂度
2020-05-18 21:54:11 257 1
原创 MySQL常用操作(一)
MySQL常用操作一、连接到MySQL为了连接到MySQL,需要以下信息:主机名(计算机名)——如果连接到本地MySQL服务器,为localhost端口(使用默认端口3306之外的端口时不可省略)一个合法的用户名用户口令(如果需要)连接到本地服务器打开命令行,输入mysql -uroot -p*****,-p后输入密码[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tYjSWb7S-1589802253740)(mysql.assets/01.PNG)
2020-05-18 19:44:38 188
原创 一篇文章了解MySQL基本概念
初识MySQL一、数据库基础数据库数据库(Database, DB)是按照数据结构来进行组织、存储和管理的建立在计算机存储设备上的仓库数据库分类数据库分类:关系型数据库、非关系型数据库关系型数据库(Relational database):创建在关系模型基础上的数据库非关系型数据库(NoSQL):不提供SQL功能的关系数据库数据库模型数据库模型:描述了数据库中结构化和操纵数据的方法,模型的结构部分规定了数据如何被描述对象模型层次模型网状模型关系模型面向对象模型
2020-05-17 22:59:52 230
原创 疯狂Java笔记-面向对象2
面向对象下一、包装类1.基本数据类型的包装类Java为8种基本数据类型提供了对应的包装类基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBooleanJava为包装类提供了自动装箱和自动拆箱的功能:可以把一个基本数据类型变量直接赋给对应的包装类变量或Object类变量,也可以把一个包装类变量
2020-05-17 11:51:00 145
原创 疯狂Java笔记-面向对象1
面向对象上一、类和对象1.定义类定义类的语法格式:[修饰符] class 类名{零到多个构造器零到多个成员变量零到多个方法}修饰符:public、final、abstract,或者省略类名由一到多个有意义单词连缀而成,每个单词首字母大写,其余字母小写,单词间无分隔符类里各成员之间的定义顺序没有区别,可以相互调用,但static修饰的成员不能访问无static修饰的成员(1)定义构造器构造器是一种特殊的方法,如果类中没有定义构造器,系统自动提供默认构造器(默认构造器无参数),
2020-05-17 11:50:30 204
原创 疯狂Java笔记-数组
流程控制与数组流程控制1.顺序结构顺序结构就是程序从上到下一次逐行执行,没有任何判断和跳转2.分支结构Java中有两种分支结构:if语句和switch语句if语句if语句有三种形式:if(logic expression) {statement...}if(logic expression) {statement...}esle{statement...}if(logic expression) {statement...}else if(logic expression) {
2020-05-17 11:49:43 189 1
原创 疯狂Java笔记-数据类型与运算符
数据类型和运算符一、注释1.单行注释将双斜线(//)放在需要注释的内容之前就可以了//这是单行注释2.多行注释使用"/*“和”*/"将程序中需要注释的内容包含起来/*这是多行注释*/3.文档注释略二、标识符和关键字1.标识符规则标识符可以由字母、数字、下划线和美元符组成,其中数字不能打头标识符不能是Java关键字和保留字,但可以包含关键字和保留字标识符不能包含空格标识符只能包含美元符,不能包含其他特殊字符2.Java所有的关键字都是小写的,TRUE、FALSE、NULL都
2020-05-17 11:48:46 194
原创 疯狂Java笔记-简介
Java简介高级语言的运行机制计算机高级语言运行机制包括:编译型和解释型*编译型:编译型语言是指使用专门的编译器,针对特定平台将某种高级语言源代码一次性编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式,这个转换过程称为编译。编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行。编译型语言跨平台性差,通常运行效率较高。*解释型语言:解释型语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体性的编译和链接处理,
2020-05-17 11:46:15 256
原创 Java学习笔记(十三):反射
反射一、类的加载、连接和初始化当调用Java命令运行某个Java程序时,该命令会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动的线程都处于该Java虚拟机进程里当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤来初始化该类类的加载:当程序中使用某个类时,系统都会为之建立一个java.lang.Class对象,系统中所有类都是java.lang.Class的实例类的连接:把类的二进制数据合并到JRE中验证:检验被加载类是否有正确的内部
2020-05-16 23:03:22 200
原创 Java学习笔记(十二):网络编程
网络编程一、网络概述国际标准化组织于1978年提出OSI(Open System Interconnection),即开放系统互连参考模型开放系统互连参考模型把计算机网路网络分成物理层、数据链路层、网路层、传输层、会话层、表示层、应用层七层IP(Internet Protocol)协议又称为互联网协议,TCP(Transmission Control Protocol)协议又称为传输控制协议TCP/IP协议将网络分成物理+数据链路层、网络层、传输层、应用层四层IP地址用于唯一地标识网络中的一个
2020-05-16 23:02:37 153
原创 Java学习笔记(十一):IO流
IO流一、File类java.io.File类是文件和文件目录的抽象表示,与平台无关,与文件或目录是否存在无关File能新建、删除、重命名文件和目录,但File不能访问文件内容本身,如果要访问需要使用IO流二、IO流1.流的分类输入流和输出流输入流基类:InputStream、Reader输出流基类:OutputSteam、Writer字节流和字符流字节流操作的数据单元是8位的字节,字符流操作的数据单元是16位的字符字节流基类:InputSteam、OutputStr
2020-05-16 23:01:50 310
原创 Java学习笔记(十):泛型
泛型一、泛型概述JDK1.5前,Java集合被设计成能保存任何类型的对象,只要求具有很好的通用性,但是这样会带来两个问题:集合对添加的元素类型没有任何限制集合只知道它盛装的是Object,因此取出元素后通常需要进行强制类型转换所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值类型及参数类型。这个类型参数将在使用时(例如,继承或实现这个类或接口,用这个类型声明变量、创建对象时)确定(也称为泛型实参,泛型实参只能是引用数据类型)。Java允许在使用构造
2020-05-16 23:00:43 172
原创 Java学习笔记(九):容器
Java容器一、容器概述为了保存不确定的数据,以及具有映射关系的数据,Java提供了集合类。集合类也被称为容器类,所有的集合类都位于java.util包下,集合里只能保存对象的引用变量Java集合可分为Collection、Map两种体系Collection接口:单列数据List接口:有序、可重复的集合Set接口:无序、不可重复的集合Map接口:双列数据,保存具有映射关系的集合Collection接口继承树:Map接口继承树:二、Collection接口
2020-05-16 22:56:34 194
原创 Java学习笔记(八):注解
注解一、注解概念从JDK5.0开始,Java增加了对元数据(MetaData)的支持,也就是Annotation注解其实就是代码里的特殊标记,,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用注解,程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或部署注解是一个接口,程序可以通过反射来获取指定程序元素的java.lang.annotation.Annotation对象,然后通过java.lang.
2020-05-16 22:55:24 216
原创 Java学习笔记(七):常用类
Java常用类一、字符串相关的类1.String类String类是不可变的字符序列,String对象的字符内容是存储在一个字符数组value[]中的字符串常量存储在字符串常量池,字符串非常量对象存储在堆中字符串的连接:常量与常量拼接结果在常量池变量与常量或变量拼接结果在堆中如果拼接结果调用intern()方法,返回值就在常量池2.StringBuider类StringBuilder类是可变字符序列,可以对字符串内容进行增删,此时不会产生新的对象StringBuilder类不
2020-05-16 22:54:35 127
原创 Java学习笔记(六):多线程
多线程一、线程概述1.程序、进程、线程程序(program):静态的指令集合进程(process):运行中的程序独立性:独立地进行资源分配和调度动态性:活动的指令集合,拥有自己的生命周期和不同状态并发性:多个进程可在单个处理器上并发执行,多个进程之间不会相互影响线程(thread):独立并发的执行流线程是进程的组成部分,一个进程可以拥有一到多个线程,一个线程必须有一个父进程线程拥有自己的堆栈、程序计数器、局部变量,但不拥有系统资源。多个线程间共享父进程的全部资源线程是独立运行
2020-05-16 22:53:49 199
原创 Java学习笔记(五):异常处理机制
异常异常分类在Java语言中,将程序执行中发生的不正常情况称为“异常”,Java程序在执行过程中所发生的异常事件分为两类:Error:Java虚拟机无法解决的严重问题,如:StackOverflowError和OOMException:由编程错误或偶然的外在因素导致的一般性问题,如:空指针访问、试图读不存在的文件、网络连接中断、数组下标越界Java异常分为编译时异常和运行时异常编译时异常:编译器要求必须处置的异常,即由外在因素造成的一般性异常。编译器要求Java程序必须捕获或声明所
2020-05-16 22:52:59 215
原创 Java学习笔记(四):面向对象编程
面向对象编程方法方法的参数传递机制:Java里方法的参数传递方式只有一种:值传递。即将实际参数值的副本传入方法内,而参数本身不会受到任何影响访问控制权限修饰符类内部同一个包不同包的子类同一个工程privateyesdefaultyesyesprotectedyesyesyespublicyesyesyesyes方法重写子类与父类中同名同参数的方法必须同时声明为非static方法(此时为重写),或者同时声明为st
2020-05-16 22:52:10 141
原创 Java学习笔记(三):数组
数组一、数组1.数组概述数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型创建数组对象会在内存中开辟一整块连续的空间,而数组名引用的是这块连续空间的首地址数组长度一旦确定,就不能修改,每个数组都有一个length属性指明它的长度2.排序排序算法分类内部排序:整个排序过程不需要借助于外部存储器,所有排序操作在内存中完成外部排序:参与排序的数据非常多,数据量非常大,计算机无法把整个排序过程在内存中完成,必须借助于外部存储器。外部排序最常见的是多路
2020-05-16 22:51:09 174
原创 Java学习笔记(二):基础语法
基础语法一、标识符Java中的名称命名规范:包名、类名/接口名、方法/变量名、常量名常量名:多个有意义的单词连缀而成,所有字母大写,单词间使用下划线分隔二、变量bit和byte的区别bit:计算机中的最小存储单位byte:计算机中的基本存储单元Java虚拟机中没有提供boolean值的专用字节码指令,boolean值在编译后都使用int数据类型来代替:true用1来代替,false用0来代替自动类型转换:容量小的类型自动转换为容量大的数据类型有多种类型的数据混合运算时
2020-05-16 22:48:36 180
原创 Java学习笔记(一):编程语言介绍
Java学习笔记(一)一、编程语言介绍1.编程语言第一代语言:机器指令。以二进制代码形式存在第二代语言:汇编语言。使用助记符表示一条机器指令第三代语言:高级语言。目前使用的各类语言2.Java语言Java与C的区别:Java是一种纯粹的面向对象的程序设计语言,继承了C++语言面向对象技术的核心,舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载、多继承(以接口取代)等特性,增加了垃圾回收功能用于回收不再被引用的对象所占据的内存空间。Java特点:面向对象两个基本概念:类
2020-05-16 22:44:54 338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人