JavaSE基础语法进阶学习

1.数据类型

1.1整数

整数的进制表示

int i = 10;     //十进制-->10
int i1 = 010;   //八进制0-->8
int i2 = 0x10;  //十六进制0x-->16
int i3 = 0b10;  //二进制0b-->2

1.2浮点数

  • float 单精度4字节(有限、离散、舍入误差、接近但不等于)
  • double 双精度8字节

$金钱的精确表示?银行业务

  • BigDecimal 数学工具类

切记!!!避免浮点数进行比较(不精确)

float f = 0.1f; //0.1
double d = 1.0/10;  //0.1
System.out.println(f==d);   //false
------------------------------------
float d1 = 213213214325431f;    //超出范围
float d2 = d1+1;    //舍入误差
System.out.println(d1==d2); //true

2.变量类型

Java语言支持的变量类型有:

类变量:独立于方法之外的变量,用 static 修饰。
实例变量:独立于方法之外的变量,不过没有 static 修饰。
局部变量:类的方法中的变量。

static int allClicks=0;    // 类变量(静态变量)
String str="hello world";  // 实例变量
public void method(){
	 int i =0;  // 局部变量
}

2.1局部变量

  • 局部变量是在上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

2.2实例变量

  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

2.3类变量(静态变量)

  • 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变
  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
  • 静态变量在第一次被访问时创建,在程序结束时销毁
  • 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母

2.4变量的命名规范

变量命名规范

3.修饰符

3.1访问控制修饰符

在这里插入图片描述

3.2非访问修饰符

  • static 修饰符,用来修饰类方法和类变量。
  • final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
  • abstract 修饰符,用来创建抽象类和抽象方法。
  • synchronizedvolatile 修饰符,主要用于线程的编程。

synchronized 修饰符
synchronized 关键字声明的方法同一时间只能被一个线程访问;可应用于四个访问修饰符。

transient 修饰符
序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。
该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。

public transient int limit = 55;   // 不会持久化
public int b; // 持久化

volatile 修饰符
volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。一个 volatile 对象引用可能是 null。

4.运算符

4.1位运算符(二进制运算)

二进制运算直接跟计算机底层交互,效率极高!!!

  • 应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
  • 位运算符作用在所有的位上,并且按位运算

&:如果相对应位都是1,则结果为1,否则为0
|: 如果相对应位都是 0,则结果为 0,否则为 1
^: 如果相对应位值相同,则结果为0,否则为1 异或
:按位取反运算符翻转操作数的每一位,即0变成1,1变成0
<< :按位左移运算符。左操作数按位左移右操作数指定的位数左移乘二
>> :按位右移运算符。左操作数按位右移右操作数指定的位数右移除二
>>> :按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。右移补零

		/**
         * A = 0011 1100    60
         * B = 0000 1101    13
         * -----------------
         * A&B=0000 1100
         * A|B=0011 1101
         * A^B=0011 0001
         * ~B =1111 0010
         * <<   *2
         * >>   /2
         * >>>  补零
         */
        int a = 60;     /*0011 1100*/
        int b = 13;     /*0000 1101*/
        int c = 0;
        c = a & b;      /*0000 1100*/

        c = a | b;      /*0011 1101*/

        c = a ^ b;      /*0011 0001*/

        c = ~b;         /*1111 0010*/ /*负数的二进制表现形式为补码*/
        // 负数二进制转十进制:
        //	补码 1111 0010 
        //	反码 1111 0001 (补码减一得反码)同理:反码加一得补码
        //	原码 0000 1110 (原码转十进制添负号)

        c = a << 2;     /*1111 0000*/

        c = a >> 2;     /*1111*/

        c = a >>> 2;    /*0000 1111*/

在这里插入图片描述

5.JavaDoc生成文档

5.1Dos命令生成

  1. 打开文件目录
    在这里插入图片描述
  2. Dos命令跳转到该目录(快捷方式)
  • 文件目录前输入cmd
    在这里插入图片描述
  1. 输入javadoc命令生成帮助文档

目录>javadoc -encoding UTF-8 -charset UTF-8 java文件名.拓展名

在这里插入图片描述

5.2IDEA生成JavaDoc帮助文档

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

6.增强for循环语法

  • Java5 引入了一种主要用于数组的增强型 for 循环 for-Each循环

Java 增强 for 循环语法:

for(声明语句 : 表达式)
{
   //代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

		int[] numbers = {10, 20, 30, 40, 50};

        for (int x : numbers) {
            System.out.print(x);
            System.out.print(",");
        }
        System.out.print("\n");
        
        String[] names = {"James", "Larry", "Tom", "Lacy"};
        for (String name : names) {
            System.out.print(name);
            System.out.print(",");
        }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值