h2

Java基础知识回顾之七 ----- 总结篇

瘦欲@ 提交于 2020-04-06 17:26:18
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型、修饰符和String、三大特性、集合、多线程和IO。本篇文章则对之前学过的知识进行总结。除了简单的复习之外,还会增加一些相应的理解。 基础数据类型 基本数据类型主要有: byte、short、int、long、float、double、char、boolean 它们可以分为三类: 数值类型: byte、short、int、long、float、double 字符类型: char 布尔型: boolean 其中byte是8位,short是16位, int是32位以及 long是64的整数;而float 32位,double 64 位的浮点数。 数值类型的级别从低到高分别为: byte,char,short(这三个平级)——>int——>float——>long——>double 其中由低级别转到高级别,是属于 自动类型转换 ,这点是由系统自动转换的。在进行计算的时候,如果级别小于int,最终的数据类型会自动转换为int,如果高于int,最终数据结果会取其中最高的一个。 又高级别转到低级别是 强制类型转换 。 强制类型转换 需要注意 取值范围 和数据的 精确度 。 char 是字符类型,可以储存任何字符。 boolean 是布尔类型,只有false或true。 基础数据类型更详细的说明: http://www

Java基础知识回顾之二 ----- 修饰符和String

℡╲_俬逩灬. 提交于 2020-04-06 17:18:54
前言 在上一篇中,回顾了Java的 基本数据类型 ,这篇就来回顾下Java中的一些修饰符以及String。 修饰符介绍 Java修饰符主要分为两类: 访问修饰符 非访问修饰符 其中访问修饰符主要包括 private、default、protected、public。 非访问修饰符主要包括 static、final、abstract、synchronized。 访问修饰符 访问修饰符可以使用下图这张表来说明访问权限: 修饰符 当前类 同一包内 子类 其它包 public Y Y Y Y protected Y Y Y N default Y Y N N private Y N N N 简单点查看访问级别的话,级别是由低到高。 private<default<protected<public private 被private修饰的变量、方法仅限在本类中使用。 所以private是最严的的访问级别,主要用于隐藏类的一些细节实现和保护类的数据。 例如pojo类就是使用private修饰变量,对外提供setter和getter的方法。 还有如果使用private用来修饰构造方法的话,该类是不能实例化的。这种在单例模式中可以经常看到! 虽然private主要用于修饰变量和方法,不过也可以修饰内部类,只不过是内部类。 例如: public class Test{ //修饰一个私有变量

SharePoint 2016中的托管导航和应用

橙三吉。 提交于 2020-04-06 17:09:32
什么是SharePoint 2016中的托管导航? 托管导航允许你通过利用SharePoint托管元数据分类法为发布网站做导航。通过使用托管导航,您可以使用分层术语集作为网站集导航和围绕重要业务概念设计网站导航的基础。托管导航还允许你创建更适合搜索引擎优化(SEO)的友好URL,并且网站访问者更容易阅读 - 例如, http://contoso.com/AboutUs 。这些功能不是基于SharePoint Server 2010及早期版本中的网站集和网站结构。 您可以在以下方案中使用托管导航: 为网站集提供导航链接和层次结构,该网站集主要使用网页作为内容,而不使用网站结构。在此方案中,您可能拥有公共Internet站点或传统的非协作Intranet目录,其中包含顶级站点和页面库。将在页面库中创建所有必需的页面。启用托管导航后,创建新页面时,会自动将相应的术语添加到用于托管导航的术语集中。重组术语集层次结构可创建导航链接层次结构,从而为用户提供导航内容的能力。 为产品目录解决方案提供导航链接和层次结构。在此方案中,网站集中存在产品目录。产品目录是使用 带有图像 内容类型的 产品 和 产品 的专用列表。与前面的示例一样,产品目录是一个没有导航层次结构的平面列表。但是,您可以使用托管导航创建相应的发布站点,其中导航链接由产品目录中的相应托管元数据值驱动。例如,如果产品目录是计算机设备

梳理Ubuntu命令(文件查找和比较)---diff

血红的双手。 提交于 2020-04-06 16:53:19
快速撸一下这个命令-----diff命令 diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch程序,可以根据diff的输出将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。 1.命令格式: diff[参数][文件1或目录1][文件2或目录2] 2.命令功能: diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。 3.命令参数: -  指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。  -a或--text  diff预设只会逐行比较文本文件。 -b或--ignore-space-change  不检查空格字符的不同。 -B或--ignore-blank-lines  不检查空白行。 -c  显示全部内文,并标出不同之处。 -C或--context  与执行"-c-"指令相同。 -d或--minimal

Java基础知识回顾之三 ----- 封装、继承和多态

China☆狼群 提交于 2020-04-06 15:11:31
前言 在上一篇中回顾了 java的修饰符和String类 ,这篇就来回顾下Java的三大特性:封装、继承、多态。 封装 什么是封装 在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。 简单的来说,就是将Java中的经常用到的代码进行封装起来,形成一个方法。比如,我们常用的实体类,使用 private 修饰变量,用于保护数据;对外提供getter和setter方法,用于调用。这就是一种典型的封装。 代码示例 : public class packagingTest { public static void main(String[] args) { User user=new User(); //这里会报错,因为id和name是私有的,用于保护该数据 // user.id=10; // user.name="张三"; user.setId(1); user.setName("张三"); System.out.println(user.getId()); System

MIT6.0002 笔记,LECTURE1&2 Optimization

一个人想着一个人 提交于 2020-04-06 14:49:17
Lecture1&2 Optimization 最优化问题 贪心算法(greedy algorithm) 优点 缺点 暴力算法(brute force algorithm) 优点 缺点 动态规划(dynamic programming) Lecture1&2 总结 动态规划 作业 贪心算法 暴力算法 动态规划 最优化问题 这是MIT课程MIT60002 Computational thinking and data science 的第一二课,主要内容是最优化,包括贪心算法,暴力算法和动态编程(dynamic programming)。 贪心算法(greedy algorithm) 贪心算法的优缺点 优点 容易实现 效率很高 缺点 不一定能找到全局最优,往往找到的是局部最优。 暴力算法(brute force algorithm) 优点 一定能找到全局最优 缺点 运算复杂度很高 动态规划(dynamic programming) 综合了以上两者的优点,一定能找到全局最优,复杂度介于两者之间。 Lecture1&2 总结 大部分的实际问题都能转化为最优化问题 贪心算法能提供最够优秀的解(虽然不是最优解) 找到最优解的运算复杂度一般是 指数级 的 对于最优化问题的一个子类,动态规划能够提供最够好的性能。这个子类需要同时满足optimal substructure和overlapping

Linux中文件加锁

时光毁灭记忆、已成空白 提交于 2020-04-06 14:15:40
/proc/locks andrew@andrew-Thurley:/dev$ cat /proc/locks 1: POSIX ADVISORY WRITE 8968 08:01:11666907 1073741825 1073741825 2: POSIX ADVISORY READ 2433 08:01:11798469 128 128 .. . 35: FLOCK ADVISORY WRITE 1436 00:1a:7 0 EOF 51: FLOCK ADVISORY WRITE 1036 00:16:763 0 EOF 使用 ps -p PID 查看进程的相关信息 andrew@andrew-Thurley:/dev$ ps -p 8968 PID TTY TIME CMD 8968 ? 00:00:02 chrome 从上面的输出可以看出持有的锁的程序是 chrome ,即 google 浏览器 在 /dev 我下搜索主设备号为 8 次设备号为 1 的设备,是 /dev/sda1 andrew@andrew-Thurley:/dev$ ls -li /dev/sda1 | awk ' $6 =8' 351 brw-rw---- 1 root disk 8 1 12月 22 13:13 /dev/sda1 查看设备 /dev/sda1 的挂载点,并在该部分文件系统中搜索

Java进阶篇设计模式之一 ----- 单例模式

限于喜欢 提交于 2020-04-06 13:31:35
前言 在刚学编程没多久就听说过 设计模式 的大名,不过由于当时还是个彻彻底底的菜鸟,并没有去触碰。直到在开始工作中对简单的业务代码较为熟悉之后,才正式的接触 设计模式 。当时最早接触的设计模式是 工厂模式 ,不过本文讲的是 单例模式 ,这里就留着下篇文章中在讲解。至于为什么先讲解 单例模式 ? 那是因为 单例模式 是设计模式中最简单的... 。凡事总有个先后顺序,所以就先易后难了。好了,废话不多说了,开始进入正片。 设计模式简介 说明:这里说了的简介就是真的 “简介”。 什么是设计模式 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。 为什么使用设计模式 使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 设计模式类型 设计模式有23种类型。按照主要分类可以分为三大类: 一、创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 单例模式 工厂模式 抽象工厂模式 建造者模式 原型模式 二、结构型模式 这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 适配器模式 桥接模式 过滤器模式 组合模式 装饰器模式 外观模式 享元模式 代理模式 三、行为型模式

SharePoint 2016:性能优化和高可用(十一,SP中的WEB内容管理功能)

谁说我不能喝 提交于 2020-04-06 13:23:38
SHAREPOINT SERVER 2016中的WEB内容管理功能 根据SharePoint MPP 课程,下面几个文章介绍,SP16 性能优化和高可用的下一部分,Web内容管理功能。 SharePoint Server 2016中的Web内容管理包含用于配置,自定义,优化和发布网站集,网站和页面的功能。按照设计,发布网站主要承载网页内容而不是文档内容,尽管发布网站可以像非发布网站一样包含图书馆。 有三个发布网站集模板: 发布门户。 The Publishing Portal template offers libraries for pages, images, reports, form templates, styles, and reusable content. By default, there are content approval workflows for pages, the template is designed to support extensive branding, and anonymous permissions can be granted to content pages only. Publishing Portal templates are the most commonly used site collection

restTemplate 调用异常处理,处理http协议层的错误状态40*,30*等

六月ゝ 毕业季﹏ 提交于 2020-04-06 13:10:59
我们先来说说问问的所在 Rest 接口中的异常,如何能在RestTemplate 中显示出来.RestTemplate 中try catch 的 e.getMessage()只能是请求本身代码异常.(400 null 或者 500 null),但是 用postman 调用的时候是可以显示错误信息的.这是怎么回事? 问题代码 Rest 接口 @PostMapping("/test") public ResponseEntity save(@RequestBody List<VoOrder> vos){ System.out.println(JSON.toJSONString(vos)); // return new ResponseEntity("fuck you ", HttpStatus.BAD_GATEWAY) ; // return new ResponseEntity("fuck you ", HttpStatus.OK) ; //只有ok 能走通 return new ResponseEntity("fuck you ", HttpStatus.NOT_FOUND) ; RestTemplate调用 RestTemplate restTemplate = new RestTemplate(); List<VoOrder> vos = new ArrayList<>();