一个星期快速自学java编程高级语言干货笔记 1-3章

1. 初识Java

1.1 程序是什么?

**生活中的程序:**为了达成某个目的,所执行的固定的一系列步骤和流程。 例如:要把大象关进冰箱里,步骤就是先打开门,把大象放进去,在把门关上。这就是流程,就是生活中的步骤。

计算机中的程序: 计算机指令的集合,为了达成某个目的,将一系列的指令进行统一处理。 例如:软件的运作流程!
计算机想识别你的指令,需要一个过程,因为计算机本身只识别0110这种二进制内容。

1.2 编程和编程语言

编写程序(编程、开发)。

编程语言:用来编写程序的语言。

目前主流的就有:Java  C  C++  Python  Go  C#  PHP  Ruby ...

1.3 Java介绍

java的历史:

 1991年 为了进军机顶盒等移动端市场,Green Project项目启动,Sun公司 詹姆斯·高斯林博士领导的开发小组。  名字为:`oak`

 1995年  正式诞生了,借助互联网风。  oak  修改为 Java!

  1996年  发布JDK1.0

  1998年  Java分为了三大方向。  JDK 1.2版本  这是一个里程碑式的进程,为以后的发展铺垫了道路。分别发出了

	Java SE  标准版                 可以用来开发桌面程序。

	Java ME  移动端版本          可以用来开发手机端程序。  移动端版本 面向手机程序、机顶盒。。 例如:塞班系统内的java2D游戏(目前已经被 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  移动端版本          可以用来开发手机端程序。 

	**Java EE   企业端版本           网站或者是服务器后台开发。**

前景:

Java EE方面  服务器后台

Android开发   因为安卓开发 也需要Java基础。

大数据方面开发    Hadoop
了解java虚拟机和跨平台原理

Java是借助Java虚拟机来进行在跨平台使用,
编写源代码->编译为.class文件->运行在虚拟机上->虚拟机运行在各种平台上。
为什么要用到JDK?
因为JAVA在计算机中运行的时候需要一个运行JAVA的环境,所以要安装一个java运行环境的虚拟机,只有在相对的环境下才可以运行java!然后再使用IDE编写java程序。

1.4 Java环境安

配置JAVA_HOME环境变量 变量值为JDK安装目录的bin目录的上一级。 例如:Eclipse和Tomcat等都会寻找此变量。

然后还需要在path环境变量中 引用上方变量。在最前方输入 %JAVA_HOME%\bin;

win10小心权限问题!可能需要以管理员身份运行。

1.5 第一个Java程序

编程步骤:

  1. 创建文本文件,修改扩展名为.java

  2. 编写源代码

    public  class 文件名相同的类名{
        public static void main(String[] args){
            System.out.println("Hello World!");
        }
    }
    
    1. 编译源代码 (Java是静态编译语言,所以源代码无法直接运行,需要编译)

    javac 源代码.java

    1. 运行字节码(.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开发Java的主流IDE:**

  1. eclipse 开源 由Eclipse软件基金会(不以盈利为目的)进行维护。

  2. myeclipse 闭源 它是基于开源的Eclipse衍生出的,添加了更加适合Java EE开发的相关套件。

  3. IDEA 闭源 在目前已经几乎领先了Eclipse。

  4. netbeans 它是apache软件基金会开发

  5. visual studio
    ** Eclipse基本使用和配置**

  6. 解压安装到develop文件夹之后

  7. 双击启动 选择一个合适的位置作为工作空间(workspace)

  8. 进入主界面切换为"Java"开发模式(可以随时右键重置模式窗口 reset)

  9. 通过"window菜单" -> preference(首选项)

    1. 搜索workspace -> 字符编码:UTF-8
    2. 搜索fonts -> 修改字体和大小等

Eclipse中是以项目/工程(project)为基本单位的

  1. 在左侧空白处右键 new -> Java Project 填好基本信息即可完成创建

    创建完成之后,在工程中会有两块组成:JRE(必须要有) src目录(在内部编写源代码)

    另外工作空间也会存在以工程名为单位的项目文件夹,里面的配置内容不要删除。例如.settings bin .classpath .project

  2. 在src目录下创建源代码(右键new --> )

    1. 先创建包(package)组织 包名必须是公司域名的倒叙(必须小写)。 例如:我在课工场 则包名为cn.kgc.xxxx,我如果在腾讯:com.tencent.xxx
    2. 在包下面再创建类Class(昨天的东西),在其中指定好类名即可完成创建。
    3. 继续编写完善你的Java代码,保存之后,可以右键 run as -> Java Application来运行

2. 2掌握变量和常量的使用

**变量:**变化的量。

补充:RAM ROM

**RAM:**随机存取存储器(随机存储器) 平时你买电脑手机都要买大内存!8G 10G 因为好像程序可以开多个还不卡。 用于程序运行时临时数据的存储。 当断电或者未Ctrl+S时 会造成数据丢失。 因为它的存储和读取速度非常快!

**ROM:**只读存储器 你的机械硬盘 平时的资料都是会存储在这之上的,它可以持久存储 不会因为断电而丢失数据。

变量就是Java程序在运行时,在RAM中临时存储数据的一种方式。

例子:1552532353450

在内存中存储变量,就可以理解为去住宾馆。

宾馆的房间 变量

宾馆的房间号 变量名

房间客人 变量值

房间类型 变量的数据类型

变量的三要素:(类比住酒店)

  1. 变量的数据类型
  2. 变量名
  3. 变量值
变量的数据类型:
Java中数据类型

**按照数值和非数值划分:**

	数值类型:

		byte
	    short
		int
		 long    
		 float 
		 double

	非数值:

		char    boolean   String

**按照基本和引用数据类型划分:**

	基本数据类型:byte short int long  float double  char  boolean(在IDE还会变色)

	引用数据类型:数组、类(String是一个类)、接口、枚举

变量名的命名和规范:

  1. 由数字、字母、下划线和美元符号组成,数字不能开头。

  2. 不能使用英文单词和拼音组合形式,要么全拼音要么全单词。

  3. 不能使用关键字和保留字。

  4. 采用驼峰命名法,首字母小写,如果有多个单词,后面的每个单词首字母大写。

    连字符写法:user_name

  5. 见名知义

变量的使用

有两种方法:

  1. 先声明再赋值

    int num;

    num = 10;

  2. 声明并赋值

    int num = 10;

常量

有些变量我们知道是固定的值,不需要进行变更,所以需要将其定义为常量。

final double PI = 3.14;

常量只能赋值一次!

常量为了和变量区分,我们需要将常量的所有字母都大写,如果有多个单词,以下划线连接。

Scanner键盘录入

控制台只是为了我们在前期学习语法阶段使用的工具,或者未来在开发阶段进行测试时的使用而已。

  1. 导入Scanner

    import java.util.Scanner; 必须放在类声明上方 包声明下方。

  2. 创建Scanner对象

    Scanner scan = new Scanner(System.in);

  3. 使用方法进行输入

    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;
}

注意事项:

  1. switch只支持int String enum,但是因为自动类型转换所以byte short char也可以支持。
  2. switch中的case后必须接唯一常量。
  3. switch中每一个case后如果没有特殊情况需要添加break,否则会出现case穿透。
  4. 如果没有特别情况建议在结尾添加default作为默认处理。

3.3 if和switch区别

相同点:

都是选择结构。

都可以作为等值判断。

异同点:

语法不同。

switch只能用于等值判断,if还可以用于范围判断。

猜你喜欢

转载自blog.csdn.net/weixin_44793608/article/details/88642950