Java开发基础_01

一. 初识Java

1. 计算机简介

  • 计算机的组成
    • 硬件 :
      • 看得见摸得着
      • 中央处理器(cpu) : 运算器和控制器
      • 存储器 : 内存(内存条) , 外存(SDD固态硬盘,HSD混合硬盘,HDD机械硬盘,U盘,M.2)
      • 输入设备 : 键盘,鼠标
      • 输出设备 : 显示器
    • 软件
      • 能在计算机上运行的程序
      • 系统软件 : Windows操作系统,Mac操作系统,Linux操作系统
      • 应用软件 : 程序员开发的软件 (微信,QQ…)
  • 语言简介
    • 人与人之间进行交互的一个载体和方式
    • 计算机语言
      • 机器语言 : 二进制0,1,所有指令都是由0,1组成
      • 汇编语言 : 由一些简单的字母来表示二进制序列(0,1)
        • ADD表示加法
        • 优点 : 文件小,执行速度快,可以直接操作计算机的硬件
        • 缺点 : 可读性,可移植性较差,对程序员来说门槛比较高
      • 高级语言 : 由一些纯英文字母(包含大小写和一些特殊符号)组成
        • 例如 : +表示加法
        • 优点 : 语法相对简单,兼容性比较强,对程序员来说门槛较低
        • 缺点 : 种类繁多,每种语言都有自己的语法,每学习一门语言都需要重新学习新的语法
      • 高级语言的分类
        • 第一代高级语言 : 例如C语言,以面向过程为编程基础,唯一一门可以直接操作计算机硬件的高级语言
        • 第二代高级语言 : C++,以面向对象为编程基础,没有默认的垃圾回收机制
        • 第三代高级语言 : 例如java,C#,以面向对象为编程基础,有垃圾回收机制(GC)
        • 第四代高级语言 : 未来的发展趋势,现在还处于发展初期 ( 以面向问题编程思想为主,例大数据云平台 )

2. java的语言特点

  • 简介
    • 使用广泛,简单易学
    • java是一门强类型语言
    • 有完善的异常处理机制
    • java提供了对大数据的基础性的支持
  • 概述
    • Sun公司在1995年退出的高级编程语言 ( 开源 )
    • java之父—James Gosling(詹姆斯.高斯林)
    • Sun公司在2009年被甲骨文公司Oracle收购
  • 平台版本
    • J2SE : 标准版,是其他两个版本的基础
    • J2ME : 小型版,一般用来开发嵌入式的程序,基本已经被Android代替了
    • J2EE : 企业版,一般开发企业级的互联网程序
  • 特点
    • 开源 : java的源代码是开放的
    • 跨平台 : 用java代码编写的程序,可以在不同的操作系统上运行
      • JVM保证java程序的跨平台,JVM本身是不能跨平台的
    • 多线程
    • 面向对象
    • 多态

3. JDK,JRE下载安装

  • JDK概述
    • JDK : java开发工具包,里面包含开发工具和JRE
      • 常用开发工具javac,java
    • JRE : java的运行环境,包含运行java程序所需要的核心类库和JVM
      • 核心类库:java.lang , java.util , java.io
    • JVM : java虚拟机
      • 用来保证Java程序跨平台性的,但JVM本身不能跨平台
  • java环境搭建
    • JDK下载
      • 官网
      • jdk-8u112-windows-x64
      • 安装路径不要有中文,空格,特殊符号
    • JDK卸载
      • 控制面板卸载
      • win + r -------- control
  • 目录解析
    • bin 存放的是编译器和工具
    • include 编译本地方法
    • jre java运行时的文件
    • lib 存放类库
    • src.zip 存放原代码

4. 配置环境变量

  • 任意目录下都能使用JDK提供的常用开发工具,如java,javac
  • 高级系统设置—环境变量—新建系统变量—变量名:JAVA_HOME—变量值:安装路径(不带bin)
  • 编辑—新建—%JAVA_HOME%\bin
  • 测试 : 在DOS窗口,输入java或javac会看到一些指令

5. 案例:HelloWord

  • 常用开发工具

    • windows自带的记事本
      • 没有行号,关键字不能高亮显示,代码不能折叠
    • 高级记事本notepad++,editplus
      • 有行号,关键字可以高亮,代码可以折叠
      • 不方便调试,不适合大型的开发项目
    • 集成的开发工具IDE
      • 集成的开发工具:集代码的编写,编译,运行,调试,重构等一系列功能于一体的软件
      • 常用IDE ( Eclipse,MyEclipse,IDEA)
  • 程序的开发步骤

    • 编写
      • 编写源代码,后缀名.JAVA
    • 编译
      • 相当于把我们能看懂的文件,转换为计算机能看懂的文件,通过javac指令来实现
      • HelloWorld.java(源文件)—HelloWorld.class(字节码文件,专门给计算机看到)
    • 执行
      • 让计算机来运行指定的字节码文件,通过java指令实现
  • 编写代码

    • 创建一个HelloWorld.java文件

    • 用记事本打开

     public class HelloWorld{
         public static void main(String[] args){
             System.out.println("Hello World");
         }
     }
    
    // 有可能出现的bug
     1.在电脑系统或程序中隐藏着未被发现的缺陷或问题,统称为bug漏洞
     2.解决方案
         多看多思考,多尝试,多总结
     3.遇到问题
         非法字符(注意使用的符号,全部都是英文状态下的)
         字母大小写(严格区分大小写,Main和main不是一回事儿)
         文件后缀名(不要出现HelloWorld.java.txt)
         编译或运行指令出错
         文件名和第一行代码class后的单词要一致
    
    
    
  • 编译 javac HelloWorld.java

  • 执行 java HelloWorld

6. IDEA下载安装

  • 官网下载
  • 非中文安装路径
  • 首次启动不导入任何配置 do not import setting
  • 安装参考地址

7.java语法

  • 注释

    • 就是用来对程序进行解释和说明的文字
    • 单行注释 //要注释的内容
    • 多行注释 /* 要注释的内容 */
    • 文档注释 /** 内容 */
  • 关键字

    • 被java语言赋予了特殊含义的单词
    • 纯英文字母组成,而且全都是小写
    • 开发工具可以高亮显示
    • 常用
      • public 公共的权限
      • class 创建一个类
      • static 表示静态
      • void 表示方法的返回值类型
  • java源代码的标准格式

    public class 类名{
        public static void main(String[] args){
            System.out.println("要打印的内容");
        }
    }
    

二. 变量和数据类型

1. 变量和常量

  • 常量

    • 自定义常量
    • 字面值常量
      • 整数常量(1 2 3)
      • 小数常量(3.1415926)
      • 字符常量(单引号引起来,只能是一个值 ‘a’)
      • 字符串常量(双引号引起来,可以是一个或多个 “abc”)
      • 布尔常量(true,false)
      • 空常量(null,不能通过输出语句打印)
  • 变量

    • 在程序的执行过程中,其值在某个范围内发生变化的量就叫做变量
    • java一个变量每次只能保存一个数据,而且必须要明确保存数据的类型
    • 数据类型 : 变量变化的范围,就是数据类型
    • 变量名 : 每个变量都有一个名字,方便存取
    • 初始化值 : 变量在使用之前必须要先赋值
    //练习 输出个人信息
    package com.kgc01;
    
    public class demo01 {
        public static void main(String[] args) {
            String name = "小明";
            int age = 22;
            double hight = 1.81;
            System.out.println("姓名:" + name);
            System.out.println("年龄:" + age);
            System.out.println("身高:" + hight);
        }
    }
    

2. 数据类型

强类型语言,针对每一个数据都要给出明确的数据类型

  • 基本数据类型

    类型 字节大小 范围
    byte(字节型) 1个字节 -128 ~127
    short(短整型) 2个字节 -32768~32767
    char(字符型) 2个字节 -128~127
    int(整型) 4个字节 -2147483648~2147483647
    long(长整型) 8个字节 -2147483648~2147483647
    float(单精度浮点型) 8个字节 1.17549 * 10^(-38) ~ 3.40282 * 10^(38)
    double(双精度浮点型) 8个字节 2.22507 * 10^(-308) ~ 1.79769 * 10^(308)
    boolean(布尔型) 1个字节 true,false
  • 引用数据类型

    String(字符串类型) , 数组 , 类 , 接口

  • 常用类型

    类型 范围
    byte类型 -128 ~127
    char类型 0 ~ 65535
    • 默认的整型是int类型
    • 默认的浮点类型(小数)double类型
    • 定义long类型时,数据后面加字母L或l,建议L
    • 定义float类型时,数据后面加字母F或f,建议F
  • 变量定义

    • 声明变量并赋值
      • int age = 18;
    • 先声明后赋值
      • int age;
      • age = 18;
  • 命名规则

    • 标识符(就是用来给类,接口,方法,变量,包起名的规则)
    • 标识符的命名规则
      • 英文字母,数字,下划线
      • 数字不能开头
      • 不能和关键字重名
      • 见名知意 name,age
    • 类,接口
      • 大驼峰,每个单词首字母大写 MaxAge
    • 变量名
      • 小驼峰,第一个单词首字母小写,其他单词首字母大写 maxAge
    • 常量
      • 所有字母全部大写,多单词之间用下划线分割 MAX_AGE
      • 所有字母全都小写,多级包之间用.分割,一般都是用公司域名反写
  • 数据类型转换

    • 不同类型的数据有可能进行运算,而这些数据的取值范围不同,存储方式不同,直接计算可能会造成数据损失,需要将一种类型转换为另一种类型进行运算

    • 自动类型转换(隐式的)

      • 小类型转换大类型,自动提升为大类型,运算结果也为大类型
      • 将取值范围小的类型自动提升为取值范围大的类型
      • byte,short,char运算时转换为int
      • 布尔类型不能参加运算
      • byte,short,char --> int --> long --> float --> double
    • 强制类型转换(显式的)

      • 手动将大类型的转换为小类型,运算结果是小类型

      • 将取值范围大的类型强制转换为取值范围小的类型

      • 数据类型 变量名 = (数据类型) 要被转换的数据值

        int g;
        double b;
        int g = (int)b;
        System.out.println(g);
        
        short s =11;
        s=(short)(s+3);
        System.out.println();
        

3. 运算符

  • 用来连接常量或变量之间的符号,叫运算符

  • 用运算符把常量或变量连接起来的,符合java语法的式子就叫表达式

  • +加号 ,算术运算符

  • a+b 表达式,算术表达式

  • 分类

    运算符 符号
    算术运算符 + , - , * , / , % , ++ , –
    赋值运算符 = , += , -= , *= , /= , %=
    比较(关系)运算符 == , != , < , > , <= , >=
    逻辑运算符 &与 , |或 , !非 , ^异或(相同为false,不同为true)
    三元(目)运算符 (关系表达式) ? 表达式1 : 表达式2
    • 独立运算,前++和后++没有区别
    • 混合运算,前++和后++不同
    • 短路逻辑运算符 : && , ||
    • 三目运算符 : 判断表达式true执行表达式1,false执行表达式2
    package com.kgc01;
    public class demo02 {
        public static void main(String[] args) {
            // +可以用于连接
            System.out.println("5+5="+5+5);
            System.out.println("5+5="+(5+5));
            
            // ++a,变量a自加1,在赋值给b
            int a =1;
            int b = ++a;
            System.out.println(a);
            System.out.println(b);
            
            // c++,先将值赋给d,变量c在自加1
            int c =1;
            int d = c++;
            System.out.println(c);
            System.out.println(d);
            short s =11;
            
            //s=s+1;    是两个运算符,需要两次
            s+=1;       //一个运算符,运算一次带强制转换
            System.out.println(s);
            
            //通过三元运算符,获取a和b的最大值
            int a=10,b=20;
            int max= a<b ? b:a;
            System.out.println(max);
        }
    }
    

你可能感兴趣的:(Java保姆教程,java,开发语言)