技术随记(1)

数据库的三大范式
1.数据库的属性不可再分
2.数据库的每个属性都和主键相关
3.数据库的每个属性都和主键直接相关,而非间接相关

oracle数据库索引种类
(1)b-tree索引——最常见的一种索引,默认
(2)位图索引——该列只有几个枚举值
(3)hash索引——使用hash集群访问
(4)分区索引——存在分区表的情况

statement和preparedstatement的区别
1.PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象。
2.作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。三种方法
execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数
3.PreparedStatement代替Statement提高了代码的可用性、可维护性,性能和安全

完全二叉树和满二叉树的区别
一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。
若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。

什么是平衡二叉树
平衡二叉树是指空二叉树或者左右两颗子树高度相差不超过1且子树分别都是平衡二叉树

sql注入以及防范措施
SQL注入在英文中称为SQL Injection,是黑客对Web数据库进行攻击的常用手段之一。在这种攻击方式中,恶意代码被插入到查询字符串中,然后将该字符串传递到数据库服务器进行执行,根据数据库返回的结果,获得某些数据并发起进一步攻击,甚至获取管理员帐号密码、窃取或者篡改系统数据。
防范措施:双引号,关键字加密,存储过程,设置访问权限,参数化

js的框架:jquery,angular,React

java面向对象思想和javascript面向对象的区别
1.js是基于对象的,但是很少设计对象,但java必须有对象
2.在HTML文档中,两种编程语言的标识不同
3.javascript与Java在浏览器中所执行的方式不一样。
4.javascript与Java所采取的变量是不一样的。

java内存模型
程序计数器

虚拟机栈
本地方法栈
方法区

线程通信的方式
wait/notify 等待
Volatile 内存共享
CountDownLatch 并发工具
CyclicBarrier 并发工具

异常处理
trycatch
throw

多线程实现方式
1,继承Thread类,重写run方法;
2,实现Runnable接口,重写run方法;
3,实现Callable接口通过FutureTask包装器来创建Thread线程;
4,通过线程池创建线程;

线程池的类别
newCachedThreadPool——可缓存线程池,线程个数可自增
newFixedThreadPool——线程个数固定的线程池
newScheduledThreadPool——创建一个定长线程池,支持定时及周期性任务执行
newSingleThreadExecutor——创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

java垃圾回收原理
分代回收
年轻代
年老代
持久代
新生代收集器使用的收集器:Serial、PraNew、Parallel Scavenge
老年代收集器使用的收集器:Serial Old、Parallel Old、CMS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值