Java基础语法及面试拓展(一)--你好生活

Java基础语法(一)

注释:

书写注释是一个非常好的习惯,注释并不会被执行

  • 单行注释 (样式编辑:File–>Settings–>Editor–>Color Scheme–>Language Defaults–>Comments–>Line comment)
//单行注释用“//”开头,后面的内容就会被注释掉,不会执行
  • 多行注释 (样式编辑:File–>Settings–>Editor–>Color Scheme–>Language Defaults–>Comments–>Block comment)
//多行注释用/**/
/*
小荷才露尖尖角
早有蜻蜓立上头
*/
  • 文档注释 (样式编辑:File–>Settings–>Editor–>Color Scheme–>Language Defaults–>Comments–>JavaDoc)
//JavaDoc:文档注释,用/** 注释 */
/**
*@Description 可以添加参数,可以被识别
*@Author wujie
*/

Tips:打开IDEA创建项目
      	1. 创建空项目(Empty Project);
        2. 配置项目结构(Project Structure),设置Project选项;
        3. 新建模块(Module...),此步骤和配置项目结构不分先后顺序;
        4. 在模块下的src文件夹中新建Java类文件
        5. 编写程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标识符:

Java所有组成的部分都需要名字。类名、变量名以及方法名都被称为标识符。

  • 关键字:系统已定义的程序单词,不能用来进行类、变量及方法的命名;

  • 标识符:类名、变量名以及方法名都被称为标识符。

标识符注意点
1.所有的标识符都应该以字母(A-Z或者a-z),美元符($)或者下划线(_)开始;
2.首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或者数字的任何字符组合;
3.不能使用关键字作为类名、变量名或方法名;
4.标识符是大小写敏感的;
5.合法表示符举例:age、$salary、_value、__1_value;
6.非法标识符举例:123abc、-salary、#abc;
7.可以使用中文命名,但是一般不建议这样使用,也不建议使用拼音,不规范,显得很low。

数据类型
语言类型
  • 强类型语言: 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用,Java、C、C++属于强类型语言,安全性高。
  • 弱类型语言: VBScript、JavaScript
Java数据类型
  • 基本类型(primitive type)

    • 数值类型
      • 整数类型
        1. byte(占一个字节):范围-128~127
        2. short(占两个字节):范围-32768~32767
        3. int(占4个字节):范围-2147483648~2147483647
        4. long(占8个字节):范围-9223372036854775808~9223372036854775807
      • 浮点类型
        1. float(占4个字节)
        2. double(占8个字节)
      • 字符类型
        1. char(占2个字节)
    • 布尔(boolean)类型
      • 占1个位,true或者false(0或1)
    public class HelloWorld {
        public static void main(String[] args) {
            //八大基本数据类型
            
            //整数
            int num1 = 100;  //如何知道int数值范围,对应的类Integer,按住Ctrl+鼠标左键,即可通过类的源代码查看范围
            byte num2 = 100;  //对应的类为Byte
            short num3 = 100;  //对应的类为Short
            long num4 = 100L;  //Long类型要在数字后面加个L,对应的类为Long
            
            //小数:浮点数
            float num5 = 50.1F;  //float类型要在数字后面加个F
            double num6 = 3.1415926;
            
            //字符,只能输入一个字符,英文、符号或者汉字
            char name = 'A';
            //字符串,String不是关键字,属于类
            String name1 = "中国";
            
            //布尔值:true或false
            boolean flag = true;
        }
    }
    
  • 引用类型(reference type)

      • String:字符串
    • 接口
    • 数组

拓展:什么是字节

  • 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位的二进制数;
  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示;
  • 1B = 8bit;
  • 字符:是指计算机中使用的字母、数字、字和符号。

思考:电脑的32位和64位的区别是什么?

32位的电脑只能使用32位的CPU和操作系统,64位电脑既可以使用32位的CPU和操作系统,也可以使用64位的。它们的寻址能力是不同的,32位电脑只能支持4GB的内存,64位电脑最高可支持128GB内存甚至更高。可支持的软件也是一样的,64位是兼容32位的。

数据类型拓展

public class HelloWorld {
    public static void main(String[] args) {
        //整数拓展  进制:二进制、八进制、十进制、十六进制
        int i1 = 10;  //十进制不需要加备注
        int i2 = 010;  //八进制数字前加0
        int i3 = 0x10;  //十六进制前加0x,分别用0~9和A~F代表1~16
        int i4 = 0b10;  //二进制前加0b

        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);

        //=================================================================================================
        /*浮点数拓展
        浮点数特征:有限的、离散的、舍入误差、大约、接近但不等于;
        银行业务怎么处理?避免使用浮点数进行比较,使用数学工具类BigDecimal;
        最好完全避免使用浮点数进行比较。
         */
        float f = 0.1F;
        double d = 1.0 / 10;
        float e = 1.0F / 10;
        System.out.println(f == d);  //输出false,原因是float和double精度不一样
        System.out.println(f == e);  //输出true

        float d1 = 2147483232F;
        float d2 = d1 + 1;
        System.out.println(d1 == d2);  //输出true,原因是float类型定义值超出了该类型范围,程序自动舍弃了后面的多余部分

        //=================================================================================================
        /*字符拓展
        浮点数特征:有限的、离散的、舍入误差、大约、接近但不等于;
        银行业务怎么处理?避免使用浮点数进行比较,使用数学工具类BigDecimal;
        最好完全避免使用浮点数进行比较。
         */
        char c1 = 'a';
        System.out.println(c1);
        System.out.println((int) c1);  //强制转换,输出97,所有字符本质还是数字
        //字符是Unicode编码表,每个字符占2个字节,目前编码可以表示65536个字符,甚至更多。

        //U0000  UFFFF
        char c3 = '\u0061';
        System.out.println(c3);  //输出a,这种写法属于底层原理,根据输入的结果查询对应的字符

        //转义字符
        // \t 制表符,和Tab功能键相同
        // \n 换行符,和回车键相同
        System.out.println("Hello\tWorld");  //输出Hello  World

        //对象,需要从内存分析
        String s1 = new String("Hello");
        String s2 = new String("Hello");
        String s3 = "Hello";
        String s4 = "Hello";
        System.out.println(s1 == s2);  //输出false
        System.out.println(s3 == s4);  //输出true
        //new创建的对象的堆内存地址不同,尽管值相同,输出false;直接定义字符串,存在相同的常量池,只要值相同则输出true

        //=================================================================================================
        //布尔值拓展
        boolean flag = true;
        //if (flag==true){}
        //if(flag){}
        // 两者效果相似,Less is more!代码要精简易读
    }
}

类型转换

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

----------------------------------->byte,short,char->int->long->float->double  //long占8个字节,float占4个字节,但是浮点数优先级高于整数

运算中,不同类型的数据先转化为同一类型,然后进行运算;

public class Demo1 {
    public static void main(String[] args) {
        int i = 128;
        //int优先级比byte,故将int赋值给type,需要强制转换(类型转换)
        //优先级由高赋值给低,程序自动转换;相反,则需要强制转换
        byte b = (byte) i;  //输出-128,因为byte范围-128~127,赋给它的值超出范围了,导致内存溢出。
        System.out.println(b);

        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.在把高容量转换到低容量的时候,需要强制转换
        4.强制转换的时候可能存在内存溢出,或者精度问题
         */
        System.out.println((int)23.7);  //输出23
        System.out.println((int)-45.89F);  //输出-45
        char c='a';
        int d=c+1;
        System.out.println(d);  //输出98,因为d是int类型
        System.out.println((int)d);  //输出98
        System.out.println((char)d);  //输出b,对d进行了强制转换

        //计算比较大的数的时候,注意溢出的问题
        //JDK7新特性,数字之间可以用下划线分割;JDK版本是向下兼容的
        int money=10_0000_0000;
        int year=20;
        int total1=money*year;
        long total2=money*year;
        long total3=money*((long)year);
        System.out.println(total1);  //输出-1474836480,原因内存溢出
        System.out.println(total2);  //输出-1474836480,在乘积转换为long类型前,乘积为int,已经内存溢出了
        System.out.println(total3);  //输出20000000000,先把一个数转换为long,计算结果类型也为long,故内存不会溢出
        //程序规范性,整数和浮点数后面加字母时,要求使用大写
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值