YanMengCloud

「上了生活的贼船,就要当一名快乐的小海盗」

java:(Object Oriented)

    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等

1
2
3
4
5
alter table tablename add (column datatype [default value][null/not null],….);
--修改字段的语法:
alter table tablename modify (column datatype [default value][null/not null],….);
--删除字段的语法:
alter table tablename drop (column);

创建序列

1
2
3
4
5
6
7
8
9
10

-- 创建序列
create sequence Student_stuId_Seq
increment by 1
start with 1
minvalue 1
maxvalue 999999999;

-- 调用序列
insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,'张三');

Java序列化

Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。

Java反序列化

反序列化就是将字节序列恢复为Java对象的过程

整个过程都是 Java 虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象,因此可以实现多平台之间的通信、对象持久化存储,主要有如下几个应用场景。

HTTP:多平台之间的通信,管理等

RMI:是 Java 的一组拥护开发分布式应用程序的 API,实现了不同操作系统之间程序的方法调用。值得注意的是,RMI 的传输 100% 基于反序列化,Java RMI 的默认端口是1099端口。

JMX:JMX 是一套标准的代理和服务,用户可以在任何 Java 应用程序中使用这些代理和服务实现管理,中间件软件 WebLogic 的管理页面就是基于 JMX 开发的,而 *JBoss *则整个系统都基于 JMX 构架。

系列化反序列化基础

1
序列化和反序列化本身并不存在问题。但当输入的反序列化的数据可被用户控制,那么攻击者即可通过构造恶意输入,让反序列化产生非预期的对象,在此过程中执行构造的任意代码。

一个类的对象能够序列化的成功需要两个条件

  • 该类必须实现 java.io.Serializable 接口

  • 该类的所有属性必须是可序列化的。如果有一个属性不是可序列化的,则该属性必须注明是短暂的。

’Hexo’ 是一款基于 ‘Node.js’ 的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在 ‘GitHub’ 和 ‘Coding’ 上,是搭建博客的首选框架。 由于 ‘Hexo’ 使用[markdown]语法的纯文本编辑,所以在写作的时候我们需要使用一些工具方能达到事半功倍的效果。