JAVA大数据学习内容
第一章:初识JAVA
1.1.程序是什么?
生活中的程序:为了达成某个目的,所执行的固定的一系列的步骤和流程。
例如:银行办卡,医院看病,大象放进冰箱,请假,结婚.....
计算机中的程序:计算机指令的集合,为了达成某个目的,将一系列的指令进行统一处理。
例如:软件,APP…
“程序一定是来源或者超脱于现实生活。”
1.2.编程和编程语言
编写程序(编程,开发)
编程语言:用来编写程序的语言。
主流语言有:java c c++ phthon c# php ruby.....
1.3.java历史介绍
1991年 为了进军机顶盒等移动端市场,Green Projet项目启动,Sun公司 詹姆斯·高斯林博士领导的开发小组。‘oak’
1995年 正式诞生,借助互联网风。 oak->java
1996年 JDK1.0
1998年 java分为三大方向。 JDK1.2版本
java SE 标准版 核心内容 可以用来开发桌面程序。
java ME 移动端版本 可以用来开发手机端程序。 Android代替了
java EE 企业端版本 网站或者是服务器后台开发。
2009年 Sun公司因为决策失误,公司最终被Oracle(甲骨文)收购!花费74亿美元
所以因为已经被收购了,Sun公司包含且不限于 商标,专利,java等版权等全都移交给了Oracle。
例如我们后面会学习到的:MySQL Virtual Box等。
2019年1月1日起 Oracle公司决定 JDK将不再向企业提供免费更新,最后一版为JDK 8u192,当然后续版本还可以用于非盈利私人使用学习,但是也仅仅到2020年而已。
Sun公司当初就考虑过Java收费,但是最终没有实现。
JDK自从出生就诞生了两个版本:
1.Sun公司专用版本,我们平时下载用的,由Sun公司,现在的Oracle公司维护。
2.Open JDK是Sun公司开源在社区的,由开源社区维护。
而且各个大型互联网公司,也对Open JDK进行了定制。所以短时间内,企业可以继续采用JDK8 或者准备迁移为Open JDK。
能力
Java SE 标准版 是核心 可以用来开发桌面程序。
Java ME 移动端版本 可以用来开发手机端程序。 Android替代了
java EE 企业端版本 网站或者是服务器开发。
前景
Java EE方面 服务器后台。
Android开发 因为安卓开发 也需要Java基础。
大数据方面开发 Hadoop
1.4.java环境安装
JDK8 需要统一安装到develp文件夹
配置JAVA_HOME
环境变量 变量值为JDK安装目录的bin目录的上一级。
例如:Eclipse和Tomcat等都会寻找此变量。
然后还需要在path环境变量中 引用上方变量。
%JAVA_HOME%\bin;
win10小心权限问题!可能需要以管理员身份运行。
1.5.第一个java程序
编程步骤
1.创建文本文件,修改扩展名:.java
2.编写源代码
java
public class 文件名相同的类名{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
3. 编译源代码 (Java是静态编译语言,所以源代码无法直接运行,需要编译)
4. 运行字节码(.class)文件
java 文件名(千万别家扩展名)
1.6 第一个Java程序的语法结构和注意事项
java
public class 文件名相同的类名{ // 类声明
public static void main(String[] args){ // main方法 Java程序的入口
// 输出语句 用于在控制台/显示器输出内容
System.out.println(“Hello World!”);
}
}
注意文件名和类名相同,采用帕斯卡命名法(大驼峰命名法)。
注意main方法要完全一致 否则程序无法运行。
注意缩进对齐,每向下一级应该进行缩进,缩进4个空格。
1.7 输出语句和注释
System.out.println();` 输出并换行
System.out.print();` 输出不换行
转义字符:\n 换行 \t 一个制表位
注释:
对代码进行解释的内容。 为了方便自己和同事等团队开发人员阅读和维护。
注释种类:
单行注释: // 最后用于方法内单行解释
多行注释: /* */ 可用于方法的解释或者方法内多行解释。
文档注释:/** */ 可用于类、方法、属性等注释、
1.8 Java虚拟机和跨平台原理
我们Java编译的是字节码文件不是机器码文件,所以它无法直接在系统平台上运行,需要借助于JVM(Java虚拟机)。同样因为JVM的原因,所以实现了跨平台。
1.9 反编译(了解)
编译:.java -> .class
反编译:.class -> .java
会用工具即可。