对大数据的认识
大数据:数据量大 全量数据
数据处理模式:流处理 (storm) 批处理(Hadoop、spark)
应用:管理 、 清洗 、 挖掘
采集、 灾难备份等
大数据方向
大数据开发
数据分析、数据挖掘、机器学习
数据运维
企业看重
职业认识
团队能力
意识思维
知识深度
总的学习方式:及时反馈问题,进行总结
面试笔试题
基础、思维、读、写代码能力 、算法等。
集群
集群通信系统是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多
分布式
在计算机科学中,分布式计算(英语:Distributed computing,又译为分散式计算)这个研究领域,主要研究分散系统(Distributed system)如何进行计算。分散系统是一组电子计算机(computer),通过计算机网络相互链接与通信后形成的系统。把需要进行大量计算的工程数据分区成小块,由多台计算机分别计算,在上传运算结果后,将结果统一合并得出数据结论的科学。目前常见的分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,该项目结构庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。
java垃圾回收机制(GC)
Java语言规范没有明确地说明JVM使用哪种垃圾回收算法,但是任何一种垃圾收集算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用。
部分面试题
1、请写出以下代码的输出结果
public class TestThree{
private void test(int param) {
switch (param) {
case 1:System.out.println("Selected 1.");
case 2:System.out.println("Selected 2.");
case 3:System.out.println("Selected 2.");
default:
System.out.println("Default seleted.");
}
}
public static void main(String[] args) {
new TestThree().test(2);
}
}
程序输出结果为:
Selected 2.
Selected 3.
Default seleted.
注:在case语句后没有break,所以后边的语句被都执行
2、请写出以下代码的输出结果
public class Test{
int a;
int b;
public void f(){
a =0;
b=0;
int [] c ={0};
g(b,c);
System.out.println(a+" "+b+" "+c[0]+" ");
}
public voidg(int b,int[] c){
a=1;
b=1;
c[0]=1;
}
public static voidmian(String[] args){
Test obj = new Test();
obj.f();
}
}
数组 :
1、数组(一种引用数据类型)
数组中的所有元素具有相同数据类型,长度确定(数组对象长度不可变,而不是数组的长度不可变)
可存储基本类型,也可存储引用类型
多维数组:数组中存放数组
定义数组:type[] arrayname或type arrayname[]
引用类型:声明时实际内容并没有划分
基础类型变量:声明时就划分了空间
两种初始化方式:静态初始化 int a[]={1,2,3};不显式说明长度,通过具体的元素知道长度
动态初始化 int b[]=new int[3];显式说明长度,无实际元素
下标从0开始
求最大值、最小值
折半查找(时间复杂度)
冒泡排序、选择排序
数组的常见操作:
最大值、最小值实现
排序:
<1>利用Arrays带有的排序方法快速排序
<2>冒泡排序算法
面向对象
1、面向对象(Object Oriented,OO)是软件开发方法。
一个很抽象的概念,它相对面向过程而言。
过程与对象都是一种解决问题的思想。
面向过程:强调的是功能行为,一种过程,先干啥,再干啥;
面向对象:将功能封装到对象里,强调的是具备某功能的对象;
计算机语言为了更好的去描述现实生活中的事物,也一样会按照生活中的思考方式来定义,这样人们使用起来才会更方便。
2、面向对象的三个特征:
封装 继承 多态
类的定义
构造方法:用来构造类的实例(默认有一个无参的构造方法,得使用new调用)
字段:类或对象所包含的数据,对类状态的一种描述;
方法:类或对象的特征或行为
对象的定义、创建以及使用
格式:
类名 对象名称 = new 类名(); //其实是两步操作
类名 对象名称 ; //声明对象
对象名称 = new 类名(); //实例化对象
例:
CellPhone iphone = new CellPhone();
static关键字
特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
用static修饰:
用static 修饰的成员表示它属于这个类共有,而不是属于该类的单个实例。
没使用static修饰的字段和方法,成员属于类的单个实例,不属于类。
对象的引用
CellPhone phone = new CellPhone();
1. 创建了一个CellPhone 的实例(对象),
2. 把这个CellPhone 实例赋给 phone变量。
phone.brand="Android";
引用变量指向对象,也就是说引用型变量存放的仅仅是一个引用;
成员变量&局部变量
成员变量:(字段)
实例字段(无static修饰)
类字段(static修饰)
局部变量:
形参
方法局部变量
定义时不给初始值,没问题,但是不能使用,若要使用,必须给定初始值。
代码块局部变量{}
数组中字符元素的排列
运用递归、迭代
Java中为什么是单继承,怎样实现多继承
单继承的原因
(1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量
(2)如果在一个子类继承的多个父类中拥有相同方法,子类中有没有覆盖该方法,那么调用该方法时将产生歧义,无法判断应该调用哪个父类的方法。
多继承实现
1、子类继承父类,又所有的类是Object的子类,父类是object的子类,父类的子类同样可以调用object中的成员变量和方法;
2、接口可实现多继承:
因为在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点.
3、内部类
包装类
基本数据类型的包装类
包装类说明
除了Integer和Character定义的名称和对应的基本类型差异大,其他六种都是将首字母大写就可以了。
Integer,Byte,Float,Double,Short,Long都是Number类的子类。(Number类后面讲);
Character和Boolean都是Object直接子类;
8个类都是final修饰的(不可被继承)。
整型类的享元模式:
Integer a = 123; Integer b = 123; 相等吗?
Integer a = 246; Integer b = 246; 相等吗?
基本数据类型和包装类相互转换
把基本数据类型 → 包装类:
通过对应包装类的构造方法实现
除了Character外,其他包装类都可以传入一个字符串参数构建包装类对象。
包装类 → 基本数据类型
包装类的实例方法xxxValue(); // xxx表示包装类对应的基本数据类型
具体实现