欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

程序员的历程

程序员文章站 2022-05-26 21:33:02
...

初识JAVA

## 新de改变
回顾前三章
1. 初识Java
生活中的程序:为了达成某个目的,所执行的固定的一系列步骤和流程。 例如:银行办卡 医院看病 大象放进冰箱 请假 结婚 …
计算机中的程序: 计算机指令的集合,为了达成某个目的,将一系列的指令进行统一处理。 例如:软件、APP等。
“程序一定是来源或超脱于现实生活。”
1.2 编程和编程语言
编写程序(编程、开发)。
编程语言:用来编写程序的语言。
主流:Java C C++ Python Go C# PHP Ruby …
1.3 Java介绍
历史:
1991年 为了进军机顶盒等移动端市场,Green Project项目启动,Sun公司 詹姆斯·高斯林博士领导的开发小组。 oak
1995年 正式诞生了,借助互联网风。 oak -> Java
1996年 JDK1.0
1998年 Java分为了三大方向。 JDK 1.2版本
Java SE 标准版 是核心 可以用来开发桌面程序。
Java ME 移动端版本 可以用来开发手机端程序。 Android替代了
Java EE 企业端版本 网站或者是服务器后台开发。
2004年 Java推出JDK1.5 这个版本加入了大量新特性,泛型、包装类型、注解…
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 需要统一安装到develop文件夹(查老师要求)
配置JAVA_HOME环境变量 变量值为JDK安装目录的bin目录的上一级。 例如:Eclipse和Tomcat等都会寻找此变量。
然后还需要在path环境变量中 引用上方变量。 %JAVA_HOME%\bin;
win10小心权限问题!可能需要以管理员身份运行。
1.5 第一个Java程序
编程步骤:
创建文本文件,修改扩展名为.java
编写源代码
public class 文件名相同的类名{
public static void main(String[] args){
System.out.println(“Hello World!”);
}
}编译源代码 (Java是静态编译语言,所以源代码无法直接运行,需要编译)
javac 源代码.java
运行字节码(.class)文件
java 文件名(千万别加扩展名)
1.6 第一个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 一个制表位
注释:对代码进行解释的内容。 为了方便自己和同事等团队开发人员阅读和维护。rwm
好的代码应该是给人看的,而不是给机器看的。
前期注释量在40%以上,目的是让你养成习惯,后期就不要如此了!保证该有地方添加即可。
注释用于需要添加解释的代码的上方(推荐)和右方。
单行注释: // 最后用于
方法内单行解释
多行注释: /
/ 可用于方法的解释或者方法内多行解释。
文档注释:/
* */ 可用于类、方法、属性等注释。
1.8 Java虚拟机和跨平台原理
Write once , Run anywhere。
我们Java编译的是字节码文件不是机器码文件,所以它无法直接在系统平台上运行,需要借助于JVM(Java虚拟机)。同样因为JVM的原因,所以实现了跨平台。
1.9 反编译(了解)
编译:.java -> .class
反编译:.class -> .java
会用工具即可。
上面是第一章*
2. 变量和数据类型
2.1 IDE的使用

2.2 变量

变量:Java用于临时性存储数据的单位/容器。
变量的三要素:(类比住酒店)
变量的数据类型
变量名
变量值
变量的数据类型:
Java中数据类型
按照数值和非数值划分:
数值:
byte short int long float double
非数值:
char boolean String
按照基本和引用数据类型划分:
基本数据类型:byte short int long float double char boolean
引用数据类型:数组、类(String)、接口、枚举
变量名的命名和规范:
由数字、字母、下划线和美元符号组成,数字不能开头。
不能使用英文单词和拼音组合形式,要么全拼音要么全单词。
不能使用关键字和保留字。
采用驼峰命名法,首字母小写,如果有多个单词,后面的每个单词首字母大写。
连字符写法:user_name
见名知义
变量的使用
先声明再赋值
int num;
num = 10;
声明并赋值
int num = 10;
常量
有些变量我们知道是固定的值,不需要进行变更,所以需要将其定义为常量。
final double PI = 3.14;
常量只能赋值一次!
常量为了和变量区分,我们需要将常量的所有字母都大写,如果有多个单词,以下划线连接。
Scanner键盘录入
控制台只是为了我们在前期学习语法阶段使用的工具,或者未来在开发阶段进行测试时的使用而已。
导入Scanner
import java.util.Scanner; 必须放在类声明上方 包声明下方。
创建Scanner对象
Scanner scan = new Scanner(System.in);
使用方法进行输入
nextInt(); 输入整数
nextDouble(); 输入小数
next(); 可以用来输入字符串
数据类型转换
联想大米袋子
自动类型转换: 低精度 -> 高精度
double num = 10;
强制类型转换: 高精度 -> 低精度 会损失精度
int num = (int)10.1;
常用的运算符
赋值运算符
= 赋值符号 记好了是将=号右边的赋值给=号左边的内容。
算术运算符

      • / %
        ++自增1 --自减1前++和后++的区别:
        前++都是先进行变量值的操作,然后再使用变量。
        后++都是先使用变量 再给变量值进行操作。
        复合算术运算符/复合赋值运算符
        += -= /= *= %=
        举例:int num = 10; num+=2; // num = num +2;
        关系运算符
        > < >= <= ==(相等) !=(不相等)逻辑运算符(常用)
        && 与(并且)
        || 或(或者)
        ! 非(取反)
        三元/目 运算符
        类似于我们选择结构学习的if-else。
        条件表达式 ? 为true时的结果 : 为false时的结果;
        优先级
        ++和–优先级最高,()可以提升优先级!

3. 选择结构
3.1 if系列选择结构
基础if选择结构
if(条件表达式){
// 成立时执行的内容
}if-else(互斥)选择结构
if(条件表达式){
// 成立时
}else{
// 不成立…
}if-else if-else(多重)选择结构
// 自上而下执行判断 只要有一个满足 剩下的不再继续判断
if(条件1){
// 条件1执行代码
}else if(条件2){
// …
}else{
// …
}嵌套if
多种if结构之间可以相互嵌套,只要符合需求即可,当然一般情况下不会嵌套太多层!
if(条件1){
if(条件2){

}

}
3.2 switch选择结构
此常量非彼常量。
此接口非彼接口。
此服务器非彼服务器。

switch(表达式){
case 常量1:
// …
break;
case 常量2:
// …
break;
default:
// 默认处理
break;
}注意事项:
switch只支持int String enum,但是因为自动类型转换所以byte short char也可以支持。
switch中的case后必须接唯一常量。
switch中每一个case后如果没有特殊情况需要添加break,否则会出现case穿透。
如果没有特别情况建议在结尾添加default作为默认处理。
3.3 if和switch区别
相同点:
都是选择结构。
都可以作为等值判断。
异同点:
语法不同。
switch只能用于等值判断,if还可以用于范围判断。