【Java_基础】java类加载过程与双亲委派机制
1.类的加载、连接和初始化当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤来对类进行初始化。如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为类的加载和初始化 1.1 类的加载类加载器根据类的全名以二进制流的形式读取class文件到JVM内存的方法区中,然后转换为一个与目标类对应的java.lang.Class对象实例。 1.2 类的连接链接阶段要做的是将加载到JVM中的二进制字节流的类数据信息合并到JVM的运行时状态中,经由验证、准备和解析三个阶段。 1)、验证 验证类数据信息是否符合JVM规范,是否是一个有效的字节码文件,验证内容涵盖了类数据信息的格式验证、语义分析、操作验证等。 格式验证:验证是否符合class文件规范 语义验证:检查一个被标记为final的类型是否包含子类;检查一个类中的final方法视频被子类进行重写;确保父类和子类之间没有不兼容的一些方法声明(比如方法签名相同,但方法的返回值不同) 操作验证:在操作数栈中的数据必须进行正确的操作,对常量池中的各种符号引用执行验证(通常在解析阶段执行,检查是否通...
【IDE_IntelliJ IDEA】IntelliJ IDEA 中自定义模板代码的缩写
方法一:新建 Live Templatestep1. 点击 File – Setting step2.选择 Live Template,点击右侧的+号,选择 Template Group step3.输入自定义的名称,然后点击OK。 step4.选中刚创建的 Template Group,再次点击右侧的+号,选择Live Template step5.填入缩写词、描述、模版内容、生效文件范围等 配置模板时,变量名以$ $包围的字符的形式出现,调用的方法也是先以变量形式出现,写完模板信息后去编辑变量(Edit variables)。 $END$是一个特殊的预定义变量,表示光标最后跳转的位置。 step6.点击右边的Edit variables(这个只有在使用了预定义函数的时候才能点击和设置) step7.点击 Apply ,OK,完成! 方法二:使用 IDEA 自带的 Live Templatepsvm 生成 main 方法fori 生成 for 循环sout 生成 System.out.println();… 方法三:修改 IDEA 自带的 Live Templat...
【Java_基础】cmd下使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
1.问题如下当在命令行使用java命令执行字节码文件时提示“错误:找不到或无法加载主类” 2. 问题分析这是由于在运行时类的全名应该是包名+类名,例如在包net.xsoftlab.baike下的类SelfDefineClassLoader的全名应为net.xsoftlab.baike.SelfDefineClassLoader。 3.问题的解决java命令后跟类的全名,执行时会根据字节码文件的路径加上类的全名来寻找class文件的位置,需注意路径中不能再含有类全名中包路径部分。 当我们以java命令后跟类的全名执行字节码文件时依然出错,例如: 原因在于,我们在main目录下让java命令去执行org.will.app.main.NewsManager,其实它会以为类的路径是: D:\HelloWorld\src\org\will\app\main\org\will\app\main\NewsManager,路径重复了。 所以,我们应该这样执行: 具体可参考博文:使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
【博客教程】博客园主题皮肤自定义设置
1.以Moonlightlnk作为基础皮肤的主题设置通过自定义页面css,并且申请启用js权限。一共包括四部分的代码:页面定制CSS代码、博客侧边栏公告代码(支持HTML和JS代码)、页首Html代码、页脚Html代码。 1.1.页面定制CSS代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916...
【DB_MySQL】MySQL中日期函数的使用
1. MySQL中日期函数的使用1.1. 转DATETIME类型为Date类型12将add_time=2013-01-12 23:23:56转化为date类型 select * from product where Date(add_time) = '2013-01-12' 1.2. 获取时间中的年、月、日1select * from product where Year(add_time) = 2013 and Month(add_time) = 1 1.3. 获取日期是本年的第几天, 值在1到366之间12mysql> select DAYOFYEAR('1998-02-03'); -> 34 1.4. 获取日期是本月的第几天, 值在1到31之间12mysql> select DAYOFMONTH('1998-02-03'); -> 3 1.5. 获取日期是本周的第几天, 值在1到7之间返回日期date的星期索引(1=星期天,2=星期一, ……7=...
【DB_MySQL】MySQL中数组的存储
1. MySQL中以字符串的形式存储数组MySQL中无数组类型,通常将数组元素按某个字符分割以字符串形式存储 1.1. 求数组中元素的个数方法:按指定符号分割字符串,返回分割后的元素个数。方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。 12345678910111213141516171819202122CREATE function Get_StrArrayLength ( @str varchar(1024), --要分割的字符串 @split varchar(10) --分隔符号 ) returns int as begin declare @location int declare @start int declare @length int set @str=ltrim(rtrim(@str)) set @location=charindex(@split,@str) set @length=1 while @location<>0 begin set @start=@location+1 set @location=chari...
【DB_MySQL】select语句的执行顺序
FROM 指明查询来源 WHERE筛选元组 GROUP BY进行分组 HAVING 筛选分组 SELECT 投影出指定的字段列 ORDER BY 对结果集排序 LIMIT 取结果的子集 【总结】 ⑴若一查询语句包含上述七个子句,那么它会按照上述1~7步依次执行,每步都会产生一个中间结果。 ⑵一旦进行了GROUP BY分组,select子句会将每组合并成一条记录,因此select子句后的投影字段要么在聚集函数中,要么作为GROUP BY后的分组字段。
【前端_css】网页常用的字体
1. 网页常用字体通常分为5类serif 字体在字符笔画末端有叫做衬线的小细节,这些细节在大写字母中特别明显。 sans-serif 字体在字符笔画末端没有任何细节,与serif字体相比,他们的外形更简单。monospace 字体,每个字母的宽度相等,通常用于计算机相关书籍中排版代码块。fantasy 和 cuisive 字体在浏览器中不常用,在各个浏览器中有明显的差异。 2. 各种字体的效果代码demo 12345678910111213141516171819202122232425262728293031323334353637383940414243<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>font</title><meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale...
【DB_MySQL】MySQL中事物的详解
1. 事物的定义及特性事务是一组操作数据库的SQL语句组成的工作单元,该工作单元中所有操作要么同时成功,要么同时失败。事物有如下四个特性,ACID简称“酸性”。 1)原子性:工作单元中所有的操作要么都成功,要么都不成功,不会出现部分成功的情况。 2)一致性:工作完成其结果应与预期一致,比如由A账户向B账户转账的事物,若该事物执行成功则必须保证A账户转出多少钱,B账户相应转入多少钱;若该事物失败,则此次转账即失败。事物的其它三个性质都是为了保证该一致性的。 3)隔离性:隔离性还可以称为并发控制、可串行化、锁等。事物中所操作的数据要隔离起来,以防止其他用户访问这些数据而带来的不一致情况。 4)持久性:事务一旦提交,其所做的修改就会永久保存到数据库中,即使数据库发生故障也不应该对其有任何影响。 事务的持久性不能做到100%的持久,只能从事务本身的角度来保证永久性,而一些外部原因导致数据库发生故障,如硬盘损坏,那么所有提交的数据可能都会丢失。 2. MySQL中开启事务的方法 2.1.方法一用BEGIN或START TRANSACTION来开启一个事物,COMMIT或ROLLBACK来...