【Java基础】Java全栈体系(一)

Java 基础

第一章 计算机概述

一、C 语言的编译运行过程

C语言的编译运行过程:-------效率高、与操作系统相关
   .c源文件,经过编译,直接生成可执行文件(0和1)

QQ是用C语言写的:
  Windows版的QQ-----------------运行在Windows系统上
  Linux版的QQ-------------------运行在Linux系统上
  IOS版的QQ---------------------运行在IOS系统上
  ???版的QQ---------------------运行在???系统上

不同操作系统的指令是不同的:
Windows系统:
  你----------------01010101
Linux系统:
  你----------------11110011
IOS系统:
  你----------------00111100

二、Java 的编译运行过程

java编译运行过程:------------------------------效率稍低、
  1).java源文件,经过编译,生成.class字节码文件
  2)JVM加载.class并运行.class(0和1)
      
假设QQ是用Java语言写的:
   java版的QQ,经过编译,生成.class字节码文件
     1)Windows装JVM-----------运行在Windows系统上
     2)Linux装JVM-------------运行在Linux系统上
     3)IOS装JVM---------------运行在IOS系统上
     4)???装JVM---------------运行在???系统上
      
跨平台、一次编程到处使用      
      
银行系统------用Java语言写的(上亿的资金)
       
     银行服务器----------------Windows系统
     银行服务器----------------Linux系统
     银行服务器----------------IOS系统     

三、Java 开发环境

1. Java编译运行过程
  • 编译期:.java源文件,经过编译,生成.class字节码文件
  • 运行期:JVM加载.class并运行.class(0和1)
  • 特点: 跨平台、一次编程到处使用
2. 名词解释
  • JVM: java虚拟机
    • 加载.class并运行.class
  • JRE: java运行环境
    • 除了包含JVM以外,还包含了运行java程序所必须的环境
    • JRE = JVM+java系统类库(小零件)
  • JDK: java开发工具包
    • 除了包含JRE以外,还包含了开发java程序所必须的命令工具
    • JDK=JRE+编译、运行等命令工具
  • 结论:
    • 运行java程序的最小环境为JRE
    • 开发java程序的最小环境为JDK

四、IDEA:

  1. 是JetBrains公司的,分社区版(免费的)和终级版(收费的)

  2. 开发步骤:

    2.1) 新建Java项目/ 工程---------------------------小区

    2.2) 新建Java包--------------------------------------楼+单元

    2.3) 新建Java类--------------------------------------房子

  • main中: System.out.println(“hello world”);
  1. 注释: 解释性文本(计算机不执行)

    3.1) 单行注释: //

    3.2) 多行注释: /* */

    3.3) 文档注释: /** */

package D01;    // 声明包D01(楼+单元)

public class HelloWorld {   // 声明类HelloWorld(房子)
    // 主方法,为程序的入口(大门口),程序的执行从main开始,main结束则程序结束
    public static void main(String[] args) {
        // 输出Hello world
        // 1.严格区分大小写
        // 2.所有符号必须是英文模式的
        // 3.每句话必须以分号结尾
        System.out.println("Hello world");  // 双引号中的原样输出
    }
}

五、变量(存数的)

1. 声明:----------- 相当于在银行开帐户
int a; //声明一个整型的变量,名为a
int b,c,d; //声明三个整型的变量,名为b,c,d
//int a; //编译错误,变量不能同名
2. 初始化:--------- 相当于给帐户存钱
int a = 250; //声明整型变量a并赋值为250
int b;   //声明整型变量b
b = 250; //给变量b赋值为250
b = 360; //修改b的值为360
3. 使用:----------- 使用的是帐户里面的钱
1)对变量的使用就是对它所存的那个数的使用
    int a = 5;
    int b = a+10; //取出a的值5,加10后,再赋值给变量b
    System.out.println(b);   //输出变量b的值15
    System.out.println("b"); //输出b,双引号中的原样输出
    a = a+10; //在a本身基础之上增10
    System.out.println(a); //15
2)变量在用之前必须声明并初始化
    //System.out.println(m); //编译错误,变量m未声明
    int m;
    //System.out.println(m); //编译错误,变量m未初始化
  • 命名:
1)只能包含字母、数字、_和$符,不能以数字开头
2)严格区分大小写
3)不能使用关键字
4)允许中文命名,但不建议,建议"英文的见名知意"
package D02;

// 变量的演示
public class VarDemo {
    public static void main(String[] args) {
        // 1. 变量的声明;----在银行开账户
        int a;  // 声明一个整型的变量,名为a
        int b,c,d;  // 声明三个整型的变量,名为b,c,d
        // int a;   // 编译错误,变量不能同名

        // 2. 变量的初始化:----给账户存钱
        int e = 25; // 声明整型变量e并赋值为25
        int f;  // 声明整型变量f
        f = 25; // 给变量f赋值为25
        f = 50; // 修改f的值为50

        // 3. 变量的使用:----使用的是账户里面的钱
        int g = 5;
        int h = g + 10; // 取出g的值,加10后,再赋值给变量h
        System.out.println(h);      // 输出变量h的值15
        System.out.println("h");    // 输出h,双引号中的原样输出
        g = g + 10; // 在g本身基础之上增10
        System.out.println(g);  // 15
        // System.out.println(i);  // 编译错误,变量i未声明
        int i;
        // System.out.println(i);  // 编译错误,变量i未初始化

        // 4. 变量的命名
        int a1, a_5$, _3c, $5g;
        // int a*b;    // 编译错误,不能包含*号等特殊符号
        // int 1a; // 编译错误,不能以数字开头
        int aa = 5;
        // System.out.println(aA); // 编译错误,严格区分大小写
        // int class;  // 编译错误,不能使用关键字

        // int 年龄; // 允许,但不建议
        // int nianLing;    // 既不直观也不专业 ---- 必须杜绝
        int age;    // 建议“英文的见名知意”
        int score, myScore, myJavaScore;    // 驼峰命名法(变量)
    }
}

六、八种基本数据类型

  • byte, short, int, long, float, double, boolean, char
1. int:整型,4个字节,-21个多亿到21个多亿
  • 整数直接量默认为int类型,但不能超出范围,若超范围则发生编译错误
  • 两个整数相除,结果还是整数,小数位无条件舍弃(不会四舍五入)
  • 运算时若超出范围,则发生溢出(溢出不是错误,但是需要避免)
2. long:长整型,8个字节,很大很大很大
  • 表示长整型直接量,需要数字后加L或l
  • 运算时若有可能溢出,建议在第1个数字后加L
3. double:浮点型,8个字节,很大很大很大
  • 浮点数直接量默认为double型,若想表示float需在数字后加F或f
  • double与float型数据参与运算时,有可能发生舍入误差(精确运算场合不能选用)
4. boolean: 布尔型,1个字节
  • 只能存储true或false
5. char:字符型,2个字节
  • 采用的是Unicode字符集编码格式,一个字符对应一个码
    表现的形式为字符char,但本质上是码int(0到65535之间)
    (ASCII码: ‘a’–97 ‘A’–65 ‘0’–48)
  • 字符型直接量必须放在单引号中,只能有一个
  • 特殊符号需要通过\来转义

七、类型间的转换

1. 两种方式
数据类型从小到大依次为: byte--short--int--long--float--double
                            char--
  • 自动/隐式类型转换:小类型到大类型
  • 强制类型转换:大类型到小类型
    • 语法: (要转换成为的数据类型)变量
    • 强转有可能发生溢出或丢失精度
2. 两点规则
  • 整数直接量可以直接赋值给byte、short、char,但不能超范围
  • byte,short,char型数据参与运算时,系统将其一律先转为int再运算
package D02;

public class DataTypeDemo {
    public static void main(String[] args) {
        /**
        // 类型间的转换
        byte b1 = 5;    // 整数直接量可以直接赋值
        byte b2 = 6;
        byte b3 = (byte)(b1 + b2);

        System.out.println(2 + 2);    // 4
        System.out.println(2 + '2');    // 52, 2加上'2'的码50
        System.out.println('2' + '2');  // 100,'2'的码50,加上'2'的码50
        
        // 类型间的转换
        int a = 5;
        long b = a;     // 自动/隐式类型转换
        int c = (int)b; // 强制类型转换

        long d = 5;     // 自动类型转换
        double e = 5;   // 自动类型转换

        long f = 10000000000L;
        int g = (int)f;
        System.out.println(g);  // 1410065408,有可能发生溢出

        double h = 25.987;
        int i = (int)h;
        System.out.println(i);  // 25,有可能丢失精度


        // 5. char:字符型,2个字节
        char c1 = '女';  // 字符女
        char c2 = 'f';  // 字符f
        char c3 = '6';  // 字符6
        char c4 = ' ';  // 空格符

        // char c5 = 女;    // 编译错误,字符直接量必须放在单引号中
        // char c6 = '';   // 编译错误,必须有字符
        // char c7 = '女性'; // 编译错误,只能有一个字符

        char c8 = '\'';
        System.out.println(c8); // '

        char c9 = 65;   // 0到65535之间
        System.out.println(c9); // 输出时会依据c8的类型来做输出
                                // c8为char型,则以字符的形式来输出
                                // c8为int型,则以数学的形式来输出

        // 4.boolean:布尔型,1个字节
        boolean b1 = true;  // true为布尔型直接量
        boolean b2 = false; // false为布尔型直接量
        // boolean b3 = 25;    // 编译错误,布尔型只能赋值为true或false

        // 3.double:浮点型,8个字节,很大很大很大
        double a = 3.14;    // 3.14为浮点数直接量,默认为double型
        float b = 3.14F;    // 3.14F为float直接量

        double c = 6.0, d = 4.9;
        System.out.println(c - d);  // 1.0999999999999996
                                    // 1.1



        // 2.long:长整型,8个字节,很大很大很大
        // long a = 10000000000;   // 编译错误,100亿默认为int型,但超出int范围了
        long b = 10000000000L;  // 100亿L为长整型直接量


        long c = 1000000000 * 2 * 10L;
        System.out.println(c);  // 200亿(long)

        // 溢出了
        long d = 1000000000 * 3 * 10L;
        System.out.println(d);  // 不是300亿

        long e = 1000000000L * 3 * 10;
        System.out.println(e);  // 300亿

        // 1.int:整型,4个字节,-21个多亿到21个多亿
        int a = 25; // 25为整数直接量,默认为int型
        // int b = 10000000000;    // 编译错误,100亿默认为int型,但超出int范围了
        System.out.println(5/2);    // 2
        System.out.println(2/5);    // 0
        System.out.println(5.0/2);  // 2.5

        int c = 2147483647; // int的最大值
        c = c + 1;
        System.out.println(c);  // -2147483648 发生溢出了,溢出需要避免
        /**
         * +1 ----> -2147483648
         * +2 ----> -2147483647
         * +3 ----> -2147483646
         */
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java全栈知识体系是指掌握Java语言及其应用于不同技术领域的相关知识。Java是一种广泛应用于后台开发、大数据处理、移动开发以及前端开发的编程语言,因此Java全栈开发人员需要掌握一系列技术和工具。 首先,Java全栈开发人员需要具备扎实的Java语言基础,包括面向对象编程、多线程编程、异常处理等知识。此外,掌握Java的核心类库也是必要的,比如集合框架、IO流、网络编程等。 其次,Java全栈开发人员需要熟悉Web开发技术,包括JavaWeb开发、JavaEE技术、Servlet、JSP、Spring MVC等。这些技术用于实现Web应用的后台逻辑和与前端页面的交互。 另外,Java全栈开发人员需要了解数据库相关知识,包括数据库的设计和管理,SQL语言,以及Java与数据库的交互技术,比如JDBC、ORM框架如Hibernate和MyBatis等。 此外,Java全栈开发人员还需要掌握前端开发技术,如HTML、CSS、JavaScript、Ajax等,以便实现Web应用的前端页面和与后端的交互。 对于移动开发,Java全栈开发人员需要了解Android开发技术,包括Android框架、Android Studio开发环境、Android组件等。 最后,Java全栈开发人员还可以扩展其他领域的知识,如大数据技术(Hadoop、Spark)、云计算等,以应对当前技术的变化和市场需求。 总之,Java全栈知识体系是一个综合性的技术体系,要求开发人员在Java语言基础上熟悉Web开发、数据库、前端开发以及可能的其他领域的知识,以能够独立完成从后端到前端的整个应用开发过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬小帽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值