- 博客(42)
- 收藏
- 关注
原创 java reference引用理解总结(WeakReference、SoftReference、PhantomReference)
java reference引用理解总结(WeakReference、SoftReference、PhantomReference)主要从使用形式,回收时机,使用场景进行总结理解。总结表:参考:https://blog.youkuaiyun.com/sylvia_17/article/details/101996106https://juejin.cn/post/6844903665241686029...
2020-12-16 15:13:13
182
原创 java 序列化(serializable)中的 transient 理解
java 序列化(serializable)中的 transient 理解记录一下,基础是王道。作用当我们要让一个类可序列化时,直接 implament Serializable 接口,这样我们就轻松实现序列化。但有时我们不需要类中的某些属性被序列化,则使用transient 关键字,在序列化时会忽略该属性,在反序列化时该属性会被赋值null或其他基本数据类型的初始值,如 int 则复制 0,而不是序列化时的值。使用总结1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内
2020-12-10 14:35:09
396
原创 java Class 的getSuperclass() 和getGenericSuperclass()区别
java Class 的getSuperclass() 和getGenericSuperclass()区别getSuperclass()返回直接继承的父类(由于编译擦除,没有显示泛型参数)getGenericSuperclass()返回直接继承的父类(包含泛型参数)主要区别就是带不带泛型参数。...
2020-12-08 16:23:39
236
原创 java String 的codePointCount方法
java String 的codePointCount方法今天刚看到记录一下。在计算字符串长度时,Java的两种方法length()和codePointCount()一度让我困惑,运行书上例子得到的长度值是相等的,那为什么要设定两个方法呢?对于普通字符串,这两种方法得到的值是一样的,但对于UniCode的编码来说,还是有一点区别。常用的uniCode字符使用一个代码单元就可以表示,但有些辅助字符需要一对代码单元表示。比如整数集合的数学符号"Z"(没办法打出来),它的代码点是U+1D56B,但它的代
2020-12-08 15:22:44
2548
1
原创 cron表达式理解
cron表达式理解字段定义特殊符号解释常用举例字段定义字段名称允许的值可用表达式秒(seconds)0~59 整数* / - ,分(ministes)0~59 整数* / - ,时(Hours)0~23 整数* / - ,日期(DayOfMonth)1~31 整数* / - ,L W C月份(Month)1~12的整数或者 JAN-DEC* / - ,星期(DayOfWeek)1~7的整数或者 SUN-SAT (1=SUN)*
2020-11-18 13:15:26
148
原创 x86 特权级切换过程
通过中断切换特权级当中断(硬件中断、软中断(INT指令)、异常)产生时,会保存SS|ESP|EFLAGS|CS|EIP|ErrorCode,SS和ESP 表示中断时堆栈信息,CS和EIP 表示中断处理完成后返回的地址,EFLAGS 表示中断时程序标志位(加减、溢出)。特权级切换原理:1)高特权级(level0)到低特权级(level3) :直接将CS的CPL从0改成3、再将SS、ESP、EIP赋值为level3 的地址、再通过执行IRET指令完成切换。2) 低特权级到高特权级 :在level3中使用
2020-08-20 08:30:46
942
原创 x86保护模式中的特权级
x86特权级4种特权级0-3 特权级,从0-3 分别为内核操作系统、(level1、2特权级空闲),应用程序(level3)特权级间的区别:在执行一些特权指令时会做特权级检查,例如访问数据段、访问页、进入中断服务例程(ISRs)特权级检查原理:数据段、代码段、中断异常都有自己的特权级描述位(2bit),RPL(Requeted Privilege Level) 是数据段寄存器特权级,CPL 是代码段特权级,DPL 是段描述符,门描述符。检查通过情况:1)访问门时 CPL <=DPL[门]
2020-08-18 22:40:57
632
原创 SQL优化技巧(索引列注意事项)
选择最有效率的表顺序ORACLE 的解析器按照从右到左的顺序处理FROM 子句中的表名,FROM 子句中写在最后的表(基础表 driving table) 将被最先处理,在FROM 子句中包含多个表的情况下,必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询,就需要选择交叉表作为基础表,交叉表(intersection table)是指被其他表引用的表。where 子句中的连接顺序:oracle 使用从右到左的解析顺序,表之间的连接需要放到WHRER 左边,可以过滤掉大量数据的条件需..
2020-08-12 10:50:59
248
原创 linux一些常用的命令
pwd :显示当前工作目录cd :改变目录ls :列出文件和目录ls -a :显示所有文件和目录包括隐藏的ls -l :显示长列表格式mkdir :创建目录rmdir :删除目录touch : 建立空文件cp :复制命令cp -r dir1 dir2 :递归复制命令(复制目录信息)mv : 移动文件和改文件名rm : 删除rm -rf 删除所有内容 (包括目录和文件)r 递归 f 强制ln :建立符号连接ln -s 源 目标 例:ln
2020-06-09 23:03:06
147
原创 linux 设置系统时间/查看日历
显示系统时间date修改系统时间date MMDDHHMMCCYY.SS # 月月日日时时分分年年年年.秒秒查看月历cal 3 2020 # 查看 2020年3月查看年历cal 2008
2020-06-08 13:07:21
380
原创 linux top命令/进程监测/进程信息解释
监测进程情况top定时多少秒刷新一次top -d 10 #指定10秒刷新一次监视指定用户先输入top 回车,再输入 u 再输入用户名。
2020-06-08 12:58:45
270
原创 samba 服务安装/使用/某些配置说明
samba服务安装 使用① 查看是否安装了rpm -q samba② 删除原有的rpm -e samba --nodeps #强制删除③安装rpm -ivh samba包全路径④创建一个账户密码,这里举例:dadauseradd dada⑤设置密码passwd dada⑥给dada 设置samba 密码cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswdsmbpasswd dada⑦启动 s
2020-06-07 10:21:13
246
原创 rpm 包管理\查看、安装、删除软件包
查看安装了哪些rpm 软件rpm -qa查看指定包是否安装rpm -q 包名安装rpm 包rpm -i rpm包全路径 v 提示 h 进度条删除rpm -e 删除 --nodeps 强制删除不管依赖
2020-06-07 09:45:12
471
原创 linux文件权限、用户组
添加组groupadd 组名查看所有组cat /etc/group创建用户并将用户添加到组useradd -g 组名 用户名 删除用户userdel 用户名删除用户及用户的主目录文件userdel -r 用户名查看所有用户信息cat /etc/passwd文件权限解释当我们使用ll 或 ls -l 命令时系统会列出上图信息,其中文件权限分为4部分如上所示;A 部分表示文件类型、B部分表示拥有者权限、C部分表示拥有者所在组的权限、D部分表示其他用户的权限。r:读 w
2020-05-31 10:48:54
213
原创 Linux Ubuntu14.04.6 网络配置
静态ip配置终端输入: vim /etc/network/interfaces编辑内容:auto eth0iface eth0 inet static#主机地址address 10.1.5.190#掩码netmask 255.255.255.0#网络号network 10.1.5.1#广播地址broadcast 10.1.5.255#网关地址gateway 10.1.5...
2020-05-20 13:20:38
449
oracle pl/sql编程
基本概念:pl/sql 是在sql语言基础上扩展的语言为什么要ql/sql编程?① sql语句不能模块化编程② 在发送sql语句时,sql 语句需要由dbms 逐条编译再执行,所以效率上比较低。③ sql 语句上会附带字段信息,会有安全性问题。④ sql 语句对带宽要求更高一些。⑤ 缺点:移植性太差。创建过程(sqlplus 中要添加 / 结束):create procedure 名称 isbegin....end/调用:exec 过程名 (参数1,...参数2);
2020-05-20 13:20:00
141
原创 oracle 隔离级别
理解 脏读、不可重复读、幻读脏读:当一个事务读取另一个事务尚未提交的修改数据时产生脏读。Oracle 中没有脏读。不可重复读:在同一个事务中的同一查询,如果因为另一个事务的修改或删除,造成查询结果不一致,造成不可重复读。幻读:在同一事务中同一查询中,因为另外一个事务的增加操作造成查询结果不同,称为幻读。oracle 中实现国际标准的两种方式,oracle一共有三种隔离级别:read comitied:不会出现脏读。read only:不会脏读、不可重复读、幻读。只能读取操作。serializa
2020-05-20 13:19:23
291
原创 oracle sqlplus 常用命令- 学习笔记
sqlplus 常用命令1. sqlpuls /as sysdba : 登录到dba用户。2.conn[ect] 用户名/密码 : 切换到该用户 ,[] 中的表示可省略。3.discon[ect] :退出当前用户的连接 。4.passw[ord] 用户名 : 修改指定用户的密码,省略用户名时表示修改当前用户的密码,修改密码必须要有相关权限。5.show user...
2020-05-20 13:18:06
282
原创 oracle 管理权限和角色
权限分为系统权限和对象权限系统权限:指对数据库对象的创建,删除,修改。对象权限:指对数据库对象中数据的增删查改。常用:alter delete select insert update index references excute角色分为预定义角色和自定义角色预定义角色:指Oracle 事先提供的角色,角色实际是权限的集合。自定义角色:指用户自定义分组的权限集合。查看系统所有权限:select * from system_privilege_map order by name;查
2020-05-18 09:03:48
140
原创 oracle 索引(index)原理、使用、分类、注意事项
单列索引create index 索引名称 on 表名(列名);复合索引create index 索引名称 on 表名(列名1,列名2....);① 索引在大表中才有意义②在经常出现在条件中的字段上建立索引③索引层次不要超过4层④ 索引要占用大约为表的1.2倍的硬盘和内存空间。⑤更新数据时,系统必须要花费时间来更新索引,不恰当的索引将降低系统性能。如:在比较少用的字段上建立索引;在逻辑型的字段或者值只有固定几种的字段上建立索引。...
2020-05-17 10:36:56
1030
原创 oracle 序列(sequence)
序列创建序列:create sequence 序列名 start with 1 -- 开始数increment by 1 -- 步长maxvalue 30000 -- 最大值cycle -- 是否循环 如果是 nocycle 表示不循环nocache -- 是否缓存 cache 10 表示一次产生 10 个值 -- 优点提高效率,缺点产生跳号用法insert into 表名 values( 序列.nextval);查看
2020-05-17 09:39:56
270
原创 oracle 约束
约束① not null 用于指定某列的值不为空,即不可以为null② unique 用于指定某列唯一,可以多个null③ primary key 用于指定某列为主键,唯一且不为null,一个表只有一个主键,且建议设计主键。主键建好后会自动创建索引。④ check 用于强制限制数据需要满足的条件⑤ references/foreign key 用于定义主表和从表之间的关系,外键约束要定义在从表上,主表则必须具有主键约束或是unique 约束,在添加从表数据时外键指向主表的数据必须存在,或者将
2020-05-16 16:05:53
155
原创 oracle 事务/保存点的应用
保存点①语法savepoint 保存点名称;②配合使用rollback 可以完成事务,数据回退到指定保存点rollback to 保存点名称;rollback; -- 取消全部事务③ 一个事务中可以设置多个保存点④ 一旦回退或提交了,就不能回退了。⑤ 设置保存点会有资源开销。...
2020-05-10 16:25:28
276
原创 ubuntu 14.04.6下安装两个tomcat
ubuntu 14.04.6下安装两个tomcat安装两个tomcat,不包括jdk 安装安装两个tomcat,不包括jdk 安装本文主要针对Ubuntu14.04.6环境下,其他环境未测试过。从网络上查询的都是去修改/etc/profile、startup.sh 和 shutdonw.sh脚本,后来发现不需要配置,直接解压两次tomcat 安装包,修改端口号、把服务包放到 根目录就行了。...
2020-05-10 16:09:44
145
原创 oracle 常用函数 -持续更新
函数分为单行函数和多行函数单行函数单行函数对每一行都会执行输出结果函数参数描述ascll(x)x:任意字符返回指定字符对应的十进制数举例:select ascii('A') A,ascii('a') A,ascii('0') zero from dual;~~函数|参数|描述----|----|----|chr(x)|x:数字|给定数字返回对应字符...
2020-05-10 16:08:28
101
原创 racle合并查询/交集/并集
union取两个集合并集,去除重复行,会排序。union all取两个集合并集,不去重复行,且不会排序。intersect取两个集合的交集,去除重复行,会排序。minus取两个集合差集,第一个集合减 去第二个集合,相当于第一个集合去除第一、第二集合的交集。cube()组合分组,先以 列1 分组,再用列2 分组,最后将列1 和列2 组合起来分组。select 列1,列2... f...
2020-05-04 07:45:45
169
原创 oracle 分页查询/快捷建表/自我复制
分页查询 select t2.* from (select t1.*,rownum rn from(select * from 表名 where 条件) t1 where rn<= 结束行编号) t2 where t1.rn>= 开始行编号;理解:第一步:首先将所有行加载到内存,这一步最好不要添加条件,听韩顺平老师的课时他说可以添加条件,自己觉得不太对,猜想本步应该是将所有数据...
2020-05-04 06:58:16
144
原创 oracle 分组查询理解
分组查询常用分组函数(聚合函数)函数作用max(表达式)最大值min(表达式)最小值avg(表达式)平均值count(列名/*)总数分组查询中如果出现如select 表达式,列名,聚合函数 from ... 其中 表达式、列名、聚合函数 任意两个组合时,必须要加上 group by 表达式/列名/聚合函数 不然会异常。且出现多个列名...
2020-05-03 11:29:01
194
原创 oracle 数据库简单介绍及选择 学习笔记
各大数据库简单比较:小型数据库 ① access foxbase大型数据库 ① Oracle ② sysbase ③db2 ④ sql server(不怎么支持linux) ⑤ MySQL项目中怎么选择一个数据库:①标的 ②功能 ③多少人用(并发问题) ④ 安全和稳定 ⑤操作系统 (Unix/linux/windows)...
2020-04-28 21:21:30
142
原创 oracle 用户登录验证机制 学习笔记
用户登录验证机制oracle 用户验证分为:1.普通用户登录,使用命令conn 用户名/密码;登录时采用数据库验证方式,只有用户名和密码正确才能登录到数据库。2.特权用户登录,使用命令conn 用户名/密码 as sysdba;登录时默认使用操作系统认证(当前计算机用户在ora_dba 组中则通过验证,不在则不能通过验证),如果验证不通过再使用数据库验证。验证通过自动切换到 “SY...
2020-04-26 08:03:29
253
原创 oracle 启动流程
window 下启动Oracle1.lsnrctl start //启动监听2. oradim -startup -sid 数据库实例名 //启动数据库实例linux 下启动Oracle1.lsnrctl start //启动监听2.登录到dba 用户a) sqlplus /nologb) conn system/密码 as sysdba3.startup...
2020-04-25 16:13:34
119
原创 oracle 方案(schema)/权限/profile-学习笔记
方案每个用户在增加对象实例后,数据库实例(默认名orcl,或者自己创建时另取名称)会自动为该用户创建一个名称与用户名相同的方案。例如用户名为xm ,方案名就为xm。权限授予用户1访问用户2的数据实例(表,视图,索引等)。首先先登录用户2或者系统管理员(只要拥有用户2数据实例权限分配的权限用户都可以)grant select[update|delete|all] on 方案名.表名 t...
2020-04-25 11:58:54
665
原创 oracle 创建用户/删除用户 -学习笔记
创建用户create user 用户名 identified by 密码 default tablespace users temporary tablespace temp quota 3m on users;分配权限 grant 权限1,权限2 to 用户角色分为预定义角色与自定义角色,预定义角色常用dba,connect,resource回收/撤销权限revoke 权限/角...
2020-04-25 10:36:21
108
原创 运行时配置变化 Android developer fight-3
处理运行时配置变化(当配置发生变化时系统会默认重启Activity(先后执行onDestroy()和onCreate()),旨在通过以与新配置相匹配的备用资源自动加载适配应用)当只需要保存简单状态对象时,可在onSaveInstanceState()时保存在Bundle 对象,在onCreate()或onRestoreInstanceState()时恢复对象状态。配置变化保存大型状态对象...
2019-05-20 23:28:14
113
原创 Android developer fight-2
android资源(注意不能将资源文件直接保存到res 目录,会导致编译出错)对于应用强烈建议将资源与系统分离,包括代码里的字符串res/row 系统不会优化的一切资源,原始文件保存,以原始input stream打开,使用资源ID调用Resources,openRawResource();res/drowable 可绘制资源res/animator 属性动画res/anim 渐变...
2019-05-19 11:19:24
130
原创 Android developer fight-1
Android 正式学习开始Android应用是由多个可以单独调用的组件构成,所以构成了多个入口。Android 操作系统多用户Linux 系统,每一个应用则为一个用户;系统为每个应用默认提供一个id(应用本生不知),并为应用所有文件分配权限,只有拥有该id的应用才能访问这些文件;每个应用都具有自己的虚拟机vm,都运行在自己安全沙箱;数据共享:使用相同Linux 用户id 和相同签名;...
2019-05-14 23:27:51
112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人