records

五年过去了,再看 Java 缺失的特性

假如想象 提交于 2020-04-23 07:22:36
本文要点: 在过去的五年中,Java 语言发生了显著的变化 正在实现这一变化的有两个主要的项目:Valhalla 和 Amber,它们仍在进行中 Java 继续保持其向后兼容的核心价值 尽管已经 25 岁了,但 Java 在语言和平台上仍然具有很强的生命力 诸如 Graal 之类的新技术正在帮助 Java 继续保持在编程语言的前沿上 大约是五年前,我写了一篇 文章 ,概述了其他语言的一些特性思想,我认为这些思想可能会对 Java 有好处。从那以后发生了很多事情:那时,Java 8 是最新的发布版本,而现在,最新的版本是 Java 14。 让我们依次查看下每个特性,看看它的当前状态是什么:它是已经被添加到 Java 中了,还是正在开发中,亦或是当前尚没有将其纳入 Java 的计划。 具体化泛型 我最初的预测排除了具体化泛型(reified generics)。我没有预见到 Valhalla 项目对从头开始重构 JVM 的雄心壮志。 Valhalla 项目的主要目标是: 使 JVM 内存布局行为与现代硬件的成本模型保持一致; 扩展泛型,以允许对所有类型(包括原语、值、甚至 void)进行抽象;以及 使现有的库(尤其是 JDK)能够兼容地演变,以充分利用这些特性。 在此描述中隐藏的是已加载的单词“values”,它已经演变成我们今天称之为内联类的特性。 因此

Oracle使用fy_recover_data恢复truncate删除的数据

元气小坏坏 提交于 2020-04-23 04:41:58
(一)truncate操作概述 在生产中,truncate是使用较多的命令,在使用不当的情况下,往往会造成表的数据全部丢失,恢复较为困难。对于truncate恢复,常见的有以下几种方法可以进行恢复: 使用数据泵导入。该方法操作简单,前提是必须要有备份可用,并且会有数据的丢失; 使用RMAN进行不完全恢复。可将数据库恢复到truncate之前的时刻,但是恢复时间较长; 使用odu、prm-dul、GDUL等收费软件进行恢复; 使用fy_recover_data包; 使用RMAN进行异机恢复已在之前测试过,详见: https://www.cnblogs.com/lijiaman/p/11577001.html 。 (二)FY_Recover_Data介绍 FY_Recover_Data是国内Oracle ACE大佬黄玮(个人网站: http://www.hellodba.com )开发的一个package,该脚本专门用于对truncate的表进行恢复。 根据作者所述,其原理:如果我们已经有一套元数据及数据块,然后将被TRUNCATE的用户数据块的内容取代其用户数据块的内容,是否可以“骗”过Oracle,让它读出这些数据呢? 回顾一下表扫描的过程,这个方法应该是可行的。我们只要想办法构造出一个结构相同、且具有完整元数据信息和格式化了的用户数据块的傀儡表对象

Java 8 到 Java 14,改变了哪些你写代码的方式?

你。 提交于 2020-04-23 04:37:48
前几天,JDK 14 正式发布了,这次发布的新版本一共包含了16个新的特性。 其实,从Java8 到 Java14 ,真正的改变了程序员写代码的方式的特性并不多,我们这篇文章就来看一下都有哪些。 Lambda表达式 Lambda 表达式是 Java 8 中最重要的一个新特性,Lambda 允许把函数作为一个方法的参数。 lambda 表达式的语法格式如下: (parameters) -> expression 或 (parameters) ->{ statements; } 如以下例子: // 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的差值 (x, y) -> x – y // 4. 接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void) (String s) -> System.out.print(s) Lambda表达式具有简洁、容易进行并行计算、是未来的编程趋势等优点,但同时也会带来调试困难,新人理解成本高等缺点。 Streams API 除了Lambda 表达式外,Java 8中还引入了Stream API

sql server 索引阐述系列三 表的堆组织

亡梦爱人 提交于 2020-04-22 03:23:05
一. 概述   这一节来详细介绍堆组织,通过讲解堆的结构,堆与非聚集索引的关系,堆的应用场景,堆与聚集索引的存储空间占用,堆的页拆分现象,最后堆的使用建议 ,这几个维度来描述堆组织。在sqlserver里,表有二种组织方式,在表上没有创建聚集索引时,表就是堆组织, 有聚集索引就是B树组织。无论哪种组织方式,都可以在表上建多个非聚集索引。表的组织方式也称为HOBT。   之所以称为堆,是因为它的数据不按任何顺序进行组织,而是按分区组对数据进行组织。 在一个堆中。用于保存数据之间的关系的唯一结构是索引分配映射(IAM , index allocation map)的位图页,上一章节中有说过页文件类型。   IAM位图页有指向数据页的指针,如果一个IAM不足以覆盖所有页,将维护一个IAM页的链,在查询数据时,先使用IAM页来遍历分配单元的数据。   堆结构在数据插入没有更改时是有存储顺序的,但一改动如修改删除,结构就会发生变化, 因为没有特定的顺序来维护数据, 所以在新增表中的行时,可以保存到任何数据页上。   Sql server内部使用文件页(PFS, Page Free Space)可用空间页,PFS位图来跟踪数据页中的可用空间, 以便可以快速找到有足够空间能容纳新行的页面,如果没有则分配一个新数据页面。 1.1 堆组织结构    在堆组织中对于一个select查询

深入了解Oracle ASM(一):基础概念

拟墨画扇 提交于 2020-04-21 15:03:40
ASM基础概念 任何转载请注明源地址,否则追究法律责任!:http://www.askmaclean.com/archives/know-oracle-asm.html 相关文章链接: Asm Instance Parameter Best Practice 为什么RHEL 6上没有ASMLIB? Unix上如何查看文件名开头为”+asm”的TRACE文件 asm_power_limit对IO的影响 针对11.2 RAC丢失OCR和Votedisk所在ASM Diskgroup的恢复手段 10g ASM lost disk log 11gR2 RAC ASM启动揭秘 在11gR2 RAC中修改ASM DISK Path磁盘路径 在Linux 6上使用UDEV解决RAC ASM存储设备名问题 Script:找出ASM中的Spfile参数文件 如何诊断ASMLIB故障 Script:收集ASM诊断信息 Comparation between ASM note [ID 373242.1] and note [ID 452924.1] Why ASMLIB and why not? ASM file metadata operation等待事件 几个关于oracle 11g ASM的问题 利用UDEV服务解决RAC ASM存储设备名 Discover Your Missed ASM

MySQL 8 新特性之自增主键的持久化

一世执手 提交于 2020-04-20 18:46:30
自增主键没有持久化是个比较早的bug,这点从其在官方bug网站的id号也可看出( https://bugs.mysql.com/bug.php?id=199 )。由Peter Zaitsev(现Percona CEO)于2003年提出。历史悠久且臭名昭著。 首先,直观的重现下。 mysql > create table t1(id int auto_increment primary key ); Query OK, 0 rows affected ( 0.01 sec) mysql > insert into t1 values ( null ),( null ),( null ); Query OK, 3 rows affected ( 0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql > select * from t1; + -- --+ | id | + -- --+ | 1 | | 2 | | 3 | + -- --+ 3 rows in set ( 0.00 sec) mysql > delete from t1 where id = 3 ; Query OK, 1 row affected ( 0.36 sec) mysql > insert into t1 values ( null ); Query OK,

Flink监控:Monitoring Apache Flink Applications

元气小坏坏 提交于 2020-04-20 07:40:55
This post originally appeared on the Apache Flink blog . It was reproduced here under the Apache License, Version 2.0 . This blog post provides an introduction to Apache Flink’s built-in monitoring and metrics system, that allows developers to effectively monitor their Flink jobs. Oftentimes, the task of picking the relevant metrics to monitor a Flink application can be overwhelming for a DevOps team that is just starting with stream processing and Apache Flink. Having worked with many organizations that deploy Flink at scale, I would like to share my experience and some best practice with the

Active Directory 灾难恢复操作手册

跟風遠走 提交于 2020-04-18 15:01:10
AD摘要 Active Directory™ 服务以及保证其顺利运行所需的系统是 Windows® 2000 Server 操作系统的核心。系统管理员必须了解如何使这些关键的系统保持正常运行,以及在出现故障时如何采取应对措施。 在 Active Directory 基础结构中,域控制器可以充当多种角色 — 全局编录 (GC)、操作主机 (OM) 以及单一域控制器。本文中介绍了在出现故障后恢复 Active Directory 数据库的步骤,而且还介绍了将服务器还原为特定角色所必需的特殊要求。 本文档中介绍的步骤已经经过了 Compaq QTEST Windows 2000 机构进行的恢复操作的验证。QTEST 是基于 Windows 2000 的服务器的全球部署,Compaq 顾问用它来验证和测试不同的部署方案。 引言 本文讨论将域控制器从灾难状态(例如由于硬件或软件故障引起的数据库故障)进行恢复的步骤。此类灾难通常会导致域控制器失效,而且会使计算机无法正常引导。导致灾难的另一个原因是人为因素,例如将包含错误的数据复制到公司的其它域控制器上。 本文提供有关对运行 Active Directory 的域控制器(不运行其它服务)进行恢复的信息。如果该计算机上还安装有其它服务,例如域名系统 (DNS) 或 Internet 信息服务 (IIS),则可能还需要其它步骤

Active Directory 灾难恢复操作手册

狂风中的少年 提交于 2020-04-18 15:00:43
AD摘要 Active Directory™ 服务以及保证其顺利运行所需的系统是 Windows® 2000 Server 操作系统的核心。系统管理员必须了解如何使这些关键的系统保持正常运行,以及在出现故障时如何采取应对措施。 在 Active Directory 基础结构中,域控制器可以充当多种角色 — 全局编录 (GC)、操作主机 (OM) 以及单一域控制器。本文中介绍了在出现故障后恢复 Active Directory 数据库的步骤,而且还介绍了将服务器还原为特定角色所必需的特殊要求。 本文档中介绍的步骤已经经过了 Compaq QTEST Windows 2000 机构进行的恢复操作的验证。QTEST 是基于 Windows 2000 的服务器的全球部署,Compaq 顾问用它来验证和测试不同的部署方案。 引言 本文讨论将域控制器从灾难状态(例如由于硬件或软件故障引起的数据库故障)进行恢复的步骤。此类灾难通常会导致域控制器失效,而且会使计算机无法正常引导。导致灾难的另一个原因是人为因素,例如将包含错误的数据复制到公司的其它域控制器上。 本文提供有关对运行 Active Directory 的域控制器(不运行其它服务)进行恢复的信息。如果该计算机上还安装有其它服务,例如域名系统 (DNS) 或 Internet 信息服务 (IIS),则可能还需要其它步骤

MySQL练习题参考答案

余生颓废 提交于 2020-04-18 14:40:06
导出现有数据库数据: mysqldump -u用户名 -p密码 数据库名称 >导出文件路径 # 结构+数据 mysqldump -u用户名 -p密码 -d 数据库名称 >导出文件路径 # 结构 导入现有数据库数据: mysqldump -uroot -p密码 数据库名称 < 文件路径 /* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost Source Database : sqlexam Target Server Type : MySQL Target Server Version : 50624 File Encoding : utf-8 Date: 10/21/2016 06:46:46 AM */ SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0 ; -- ---------------------------- -- Table structure for `class` -- ---------------------------- DROP TABLE IF EXISTS `class`; CREATE