示例 1:
1234
输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
示例 2:
输入:11111111111111111111111111111101输出:10111111111111111111111111111111解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293, 因此返回 3221225471 其二进制表示形式为 10101111110010110010011101101001。
为某个对象提供一个代理,从而控制这个代理的访问。代理类和委托类具有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理类对象替代。代理类负责请求的预处理、过滤、将请求分配给委托类处理、以及委托类处理完请求的后续处理。
某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。
Customers
Orders
之前讲的四种模式都是创建型模式,现在开始讲结构型模式。何为结构型模式?结构型模式的核心作用, 是从程序结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题。
松耦合
适配器模式,把一个类接口变化成客户端所期待的另一个类的接口,使原来因接口不匹配而无法一起工作的类能够一起工作。
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
Person
示例:
1234567
+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+
根据以上输入,你的查询应返回以下结果:
12345
+---------+| Email |+---------+| a@b.com |+---------+
说明:所有电子邮箱都是小写字母。
总体来说,可以认为switch中case只支持int类型
switch
case
int
当我们需要构建一个与已经存在对象相似时,再通过new去产生一个新对象需要非常繁琐的数据准备或访问权限,而这时就可以用到原型模式,原型模式实现就是Java中的克隆技术,以某个对象为原型,复制出新的对象,显然新的对象具备原型对象相同的特点。原型模式优点是,效率高,可以直接复制,避免了重新执行构造方法过程步骤。 原型模式中的复制类似于new,但不同于new。new创建新的对象属性采用的是默认值,而复制出的对象的属性和原型对象属性完全相同。并且复制出的新对象的改变不会影响原型对象。然后再根据需要修改复制出的对象的值。
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。
Employee
+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+