- 浏览: 35277 次
- 性别:
- 来自: 南京
-
最新评论
文章列表
面向对象三大基本特性,五大基本原则
- 博客分类:
- java基础
透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.
三大特性是:封装,继承,多态
所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按 ...
接口和抽象类有什么区别
- 博客分类:
- java基础
接口和抽象类有什么区别
你选择使用接口和抽象类的依据是什么?
接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。
人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。
第一点. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不 ...
多线程轮流打印递增的数字
- 博客分类:
- java基础
问题的描述
启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20....以此类推, 直到打印到75. 程序的输出结果应该为:
线程1: 1
线程1: 2
线程1: 3
线程1: 4
线程1: 5
线程2: 6
线程2: 7
线程2: 8
线程2: 9
线程2: 10
...
线程3: 71
线程3: 72
线程3: 73
线程3: 74
线程3: 75
解法一: 采用原始的synchro ...
【1】Abstract Factory
提供一个创建一系列相关或相互依赖的对象的接口,而无需指定它们具体的类。
【2】Adapter
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
【3】Bridge
将抽象部分与它的实现部分分离,使他们都可以独立变化
【4】Builder
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
【5】Chain of Responsibility
为解除请求的发送者和接收者之间的耦合,,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到 ...
【1】模式名和分类
模式名简洁地描述了模式的本质。
【2】意图
是回答下列问题的简单陈述:设计模式是干什么的?它的基本原理和意图是什么?他解决的是什么样的特定设计问题?
【3】别名
模式的其它名称
【4】动机
用以说明一个设计问题以及如何用模式中的类、对象来解决该问题的特定场景。该情景会帮助你理解随后对模式更抽象的描述。
【5】适用性
什么情况下可以使用该设计模式?该模式可用来改进哪些不良设计?你怎样来改进这些情况?
【6】结构
采用基于对象建模技术(OMT)的表示法对模式中的类进行图形描述。
【7】参与者
指设计模式中的类/对象以及它们各自的职责。
【8】协作
模式的参与者怎样资额做以实现他们 ...
mc_devappear表中的数据可以计算出当天新增的设备数,launch2表中存储的数据可以计算出当天启动的所有设备数。用一句sql计算出二者比例(新增设备数/所有设备数)
【1】第一版
with temp as(
select count(distinct deviceid) as newdevnum from ana_fx_middle.mc_devappear where first_appear_hdfspar ='20161214' and hdfs_par='20161214'
full join
select count(distinct deviceid) ...
Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽 ...
很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,本文主要讲解其中的一些基本使用:
首先看看联机丛书的简要定义:返回其参数中第一个非空表达式
语法:COALESCE ( expression [ ,...n ] )
如果所有参数均为 NULL,则 COALESCE 返回 NULL。至少应有一个 Null 值为 NULL 类型。尽管 ISNULL 等同于 COALESCE,但它们的行为是不同的。包含具有非空参数的 ISNULL 的表达式将视为 NOT NULL ...
[size=medium]1、concat()函数
1.1 MySQL的concat函数可以连接一个或者多个字符串,如
mysql> select concat('10');
+--------------+
| concat('10') |
+--------------+
| 10 |
+--------------+
1 row in set (0.00 sec)
mysql> select concat('11','22','33');
+------------------------+
| concat('11','22','3 ...
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CONCAT()只允许两个参数;
换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。
来看几个例子。假设我们有以下的表格:
Geography 表格
region ...
python重要概念归纳
- 博客分类:
- python
Python是一门动态语言
与Java,C等相对,Python不用编译,像脚本一样直接运行.这就导致了,所有错误都是运行时的!即使有语法错误,或者异常,如果程序逻辑没有执行到,就不会有错误.比如一个if分支中有语法错误,使用了未定义的函数,但如果未执行到此分支,就可以正常运行.
动态的另外一层意思就是它的类型是动态的,也就是说无需指定变量的类型,在运行时,根据它的内容来决定的类型.
如何运行Python
通常来讲有二种方式,一种方式是交互式的,就像Shell命令行提示符那样,交互式的,输入,就有输出;
在终端输入python命令,就进入了Python的命令提示符中:>>>输入P ...
背景:是这样的今天在地铁上浏览了以下网页,看到网上一朋友问了一个多线程的问题。晚上闲着没事就决定把它实现出来。
题目:
1.开启两个线程,一个线程打印A~Z,两一个线程打印1~52的数据。
2.实现交替打印,输出结果为12A34B...........5152Z.
3.请用多线程方式实现。
这种只有两个线程交替打印数据的题目其实相对还是比较简单的,如果利用传统线程无非就是synchronized(线程互斥)与wait(),notify()的问题。
今天不用传统线程解决这个问题,我们用Java 1.5提供的线程并发库中的类来实现这个功能(实现流程和传统线程一样)
下 ...
推荐书目与知识点记录
- 博客分类:
- java基础
1、Java序列化
2、线程通信:比如最简单的2个线程轮流各自打印一句话
3、nio,文件读取问题
4、jvm调优
5、jdk源码编译
Java并发编程实战 ·
出版社: 机械工业出版社; 第1版 (2012年2月1日) ·
外文书名: Java Concurrency in Practice ·
丛书名: 华章专业开发者丛书 · 平装: 293页 ·
语种: 简体中文 ·
开本: 16 ·
ISBN: 9787111370048, 711137004X ·
条形码: 9787111370048 ·
商品尺寸: 23.6 x 18.6 x 1.4 cm ·
商品重量 ...
接上一篇文章:
只需要在nimbus节点上用root账户开启zookeeper和storm的相应接口即可,步骤如下:
1)切换root用户
2)vi /etc/sysconfig/iptables
3)加入如下几行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport ...
storm集群安装配置问题总结
- 博客分类:
- 大数据
【1】zookeeper集群配置问题
1)防火墙问题(没有解决,只是简单的用service iptables stop关闭了防火墙,这种方法在实际生产环境 中不可用)
2)zookeeper集群至少要有2台机器启动
3)删除zookeeper中的/storm节点,否则会提示找不到nimbus节点:第一步:./zkCli.sh -server ip:port 第二步:list /,列出所有的节点 第三步:使用rmr /storm
【2】主机名问题 必须同时修改etc/sysconfig/network 和/etc/hos ...