Java语言基础(回头复习)

/*
    使用变量的时候要注意的问题:
        A:作用域
            变量定义在哪个大括号内,它就在这个大括号内有效。
            并且,在同一个大括号内不能同时定义同名的变量。

        B:初始化值
            没有初始化值的变量不能直接使用。
            你只要在使用前给值就行,不一定非要在定义的时候立即给值。
            推荐在定义的时候给值。

            定义变量的格式:
                a:数据类型 变量名 = 初始化值;
                b:数据类型 变量名;
                  变量名 = 初始化值;

        C:在一行上建议只定义一个变量
            可以定义多个,但是不建议
*/
public class Text2 {
    public static void main(String[] args) {
        //定义变量
        int x = 100;

        //错误,不能有同名的
        //int x = 200;

        //定义变量必须给值
        //int y;
        //System.out.println(y);

        int z;
        z = 100;
        System.out.println(z);

        //在一行上定义多个变量
        //int a = 10; int b = 20; int c  = 30;
        //上面的写法可以,但是不建议。
        int a = 10;
        int b = 20;
        int c  = 30;

        //int d, e;
        //d = 40;
        //e = 50;

        //int f,int g; //错误
        //int h; int i; //正确
    }
}
/*
    +是一个运算符(我们等会讲解)。做加法运算的。

    一般来说,我们在运算的时候,要求参与运算的数据类型必须一致。

    注意:
        boolean类型不能转换为其他的数据类型

    默认转换(从小到大的转换)
        A:byte,short,char—int—long—float—double
        B:byte,short,char相互之间不转换,他们参与运算首先转换为int类型
*/
public class Text {
    public static void main(String[] args) {
        //直接输出的方式做加法
        //System.out.println(3 + 4);

        //两个int类型做加法
        int x = 3;
        int y = 4;
        int z = x + y;
        System.out.println(z);

        //定义一个byte类型,一个int类型,做加法,他们参与运算首先转换为int类型
        byte a = 3;
        int b = 4;
        System.out.println(a + b);

        //可能损失精度
        //byte c =  a + b;,因为 b 为int整数型,从int到byte精度可能会降低,所以此处出错
        int c = a + b;
        System.out.println(c);
    }
}
/*
    强制转换:
        从大的数据类型到小的数据类型。

        格式:
            目标数据类型 变量 = (目标数据类型) (被转换的数据);

        注意:
            不要随意的去使用强制转换,因为它隐含了精度损失问题。
*/
public class Text {
    public static void main(String[] args) {
        byte a = 3;
        int b = 4;

        //int c = a + b;这个肯定没有问题

        //byte c = a + b; 这个是有问题的

        //用强制类型转换改进
        byte c = (byte) (a + b);
        System.out.println(c);
    }
}
/*
    思考题1:请问下面这个有没有问题
        double d = 12.345;
        float f = d;

    思考题2:看看下面两个定义有没有区别呢?
        float f1 = (float)12.345;
        float f2 = 12.345f;

    解析:f1其实是通过一个double类型转换过来的。
        而f2本身就是一个float类型。
*/
public class Text {
    public static void main(String[] args) {
        //把double赋值给float,加了强制类型转换
        double d = 12.345;
        float f = (float)d;
    }
}
/*
    面试题:
        byte b1=3,b2=4,b;
        b=b1+b2;
        b=3+4;
        哪句是编译失败的呢?为什么呢?
        解析:b = b1 + b2;  这个是有问题的。
        因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
        常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。
*/
public class Text {
    public static void main(String[] args) {
        //定义了三个byte类型的变量,b1,b2,b
        //b1的值是3,b2的值是4,b没有值
        byte b1 = 3,b2 = 4,b;

        //b = b1 + b2; //这个是类型提升,所有有问题

        b = 3 + 4; //常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错。
    }
}
/*
    byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?

    练习:byte b = (byte)300;
*/
public class Text {
    public static void main(String[] args) {
        //因为byte的范围是:-128到127。
        //而130不在此范围内,所以报错。
        //byte b = 130; 

        //我们可以使用强制类型转换
        byte b = (byte) 130;

        //结果是多少呢?
        System.out.println(b);
    }
}
/*
    分析过程:
        我们要想知道结果是什么,就应该知道是如何进行计算的。
        而我们又知道计算机中数据的运算都是补码进行的。
        而要得到补码,首先要计算出数据的二进制。

        A:获取130这个数据的二进制。
            00000000 00000000 00000000 10000010
            这是130的原码,也是反码,还是补码。
        B:做截取操作,截成byte类型的了。
            10000010
            这个结果是补码。
        C:已知补码求原码。
                    符号位        数值位
            补码:    1            0000010

            反码:    1            0000001

            原码:    1            1111110
*/

/*
    看程序写结果

    通过字符和一个整数相加,我们要知道ASCII码表。
        通过看完这张表以后,我们要记住三个值:
            ‘a‘        97
            ‘A‘        65
            ‘0‘        48
*/
public class Text {
    public static void main(String[] args) {
        //直接输出一个字符
        System.out.println(‘a‘); //输出结果为  a
        //输出一个字符和一个整数做加法
        System.out.println(‘a‘+1); //输出结果为 98
    }
}
时间: 2025-01-13 19:33:10

Java语言基础(回头复习)的相关文章

2018.6.13 Java语言基础复习总结

Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计算机执行. 1.2汇编语言 负责把汇编语言翻译成二进制的机器语言,这种翻译程序就是汇编程序. 1.3高级语言 1954年第一个完全脱离机器硬件的高级语言FORTRAN诞生 1.3.1C语言 是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点. 1.3.2 C++语言 是具有面向对象

Java学习总结(二)----Java语言基础

1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,int, long ,float,double,char,boolean,void 用于定义数据类型值的关键字 true,false,null 用于定义流程控制的关键字 If,else,switch,case,default, while,do,for,break,continue,return 用于

java--学习java从这里开始:Java语言基础(1)《基础知识篇》--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java语言基础(1) 从这篇日记开始说一些关于java的语言基础知识, 1  Java语言概述 java的创始人——詹姆斯·高斯林(James Gosling) 1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第7一代工作站NeWS系统,但不受重视.后来转至Sun公司,1990年,与Patrick,Na

非专业码农 JAVA学习笔记 2 java语言基础

java语言基础 (一)程序构成 略 (二)数据类型变量和常量 1.数据类型(与c#差不多) 布尔bool 8位 字节byte 8   -128-127 字符char 16 短整型Short 16 Int 32 Long 64 Float 32 Double 64 2.标识符-变量常量方法对象和类的名字标记 字母数字 还有两个特殊符号_ 和$ 字母下划线或者美元符号开头 3.常量 4.变量 (三)表达式 1.赋值和强制类型转换 Tostring()弱转换 类型=(类型)变量:a=(int)b;a

[JAVA_开课吧资源]第一周 Java语言概述、Java语言基础

主题一 Java语言概述 » JDK介绍及其基本组件 Sun公司利用Java开发工具箱(Java Development Toolkit ,JDK)发布Java的各个版本.JDK由开发和测试Java程序的独立程序集组成,它们都从命令行调用. [请点击查看更多内容 转自51CTO.com] » 使用CMD开发运行Java程序 代码文件的拓展名必须为.java,并且文件名应该与类的类名完全相同.编译一个程序是指使用编译器将源代码翻译成java字节码.下面的命令用来编译源代码文件welcome.jav

第二章 java语言基础

2.1 java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 2.1.1 标识符 1. 组成:由英文字母.数字._和$ 2. 规则: 不能以数字开头 不能使用关键字 3. java的命名规范 包名:所有字母都小写.xxyyy 类名:所有单词的首字母大写.XxxYy 变量名和函数名:第一个单词首字母小写,之后的每个单词首字母都大写.xxYyyZz 常量名:所有字母都大写,多个单词用下划线连接.XXX_YY 2.1.2 常量和变量 1. 常量:不能改变的数值 分类: 整数

day04<Java语言基础+>

Java语言基础(循环结构概述和for语句的格式及其使用) Java语言基础(循环结构for语句的练习之获取数据) Java语言基础(循环结构for语句的练习之求和思想) Java语言基础(循环结构for语句的练习之水仙花) Java语言基础(循环结构for语句的练习之统计思想) Java语言基础(循环结构while语句的格式和基本使用) Java语言基础(循环结构while语句的练习) Java语言基础(循环结构do...while语句的格式和基本使用) Java语言基础(循环结构三种循环语句

day03<Java语言基础+>

Java语言基础(逻辑运算符的基本用法) Java语言基础(逻辑运算符&&和&的区别) Java语言基础(位运算符的基本用法1) Java语言基础(位异或运算符的特点及面试题) Java语言基础(位运算符的基本用法2及面试题) Java语言基础(三元运算符的基本用法) Java语言基础(三元运算符的练习) Java语言基础(键盘录入的基本格式讲解) Java语言基础(键盘录入的练习1) Java语言基础(键盘录入的练习2) Java语言基础(顺序结构语句) Java语言基础(选择结

Java语言基础扫雷

一.数据类型 Java支持两种数据类型:基本类型和引用类型.基本类型有布尔(boolean)类型和数值类型,数值类型有整数类型(byte.short.char.int.long)和浮点数类型(float.double),其中char也称为字符类型,统称八大基本数据类型.byte型整数在内存中占8位,short型整数在内存中占16位,int型整数在内存中占32位,long型整数在内存中占64位,float型数值在内存中占32位,double型数值在内存中占64位.按取值范围从小到大排列为:byte

day05<Java语言基础--数组>

Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java语言基础(数组的内存图解2二个数组) Java语言基础(数组的内存图解3三个引用两个数组) Java语言基础(数组的初始化静态初始化及内存图) Java语言基础(数组操作的两个常见小问题越界和空指针 Java语言基础(数组的操作1遍历) Java语言基础(数组的操作2获取最值) Java语言基础(数