java基本语法

java基本语法

java编程应该注意

  • java是大小写敏感
  • 类名:类名的首字母应该大写
  • 方法名:应该小写字母开头
  • 源文件名必须和类名相同
  • 主方法入口:所有的Java 程序由public static void main(String []args)方法开始执行。

Java标识符
java 中 变量,方法 类都需要名字,我们统称为标识符,标识符需要注意一下几点

  • 所有标识符都需要以字母(A-Z或a-z),美元符号$,或者下划线_开始
  • 首字母之后可以字母(A-Z或a-z),美元符号$,或者下划线_数字的任意组合
  • 关键字不能作为标识符
  • 标识符是大小写敏感的

java 变量
局部变量:在方法,构造方法或语句块中定义的变量是局部变量,变量的声明和初始化都是在方法中,方法结束后变量就会自动销毁

  • 访问修饰符,不能用于局部变量
  • 局部变量在栈上分配
  • 局部变量没有默认值,所以局部变量被声明以后,必须经过初始化才能使用

类变量(静态变量):声明在类中方法体外,但必须声明static类型
成员变量:成员变量是定义在类中,方法体外,在创建对象实例的时候初始化,可以类中方法,语句块,构造方法,访问

java 关键字
java 构造方法
每个类都有构造方法,如果没有显示的定义,那么java编译器会提供一个默认无参的构造方法

java 源程序与编译型运行的区别在这里插入图片描述
java 源文件声明规则

  • 一个源文件只能有一个public类
  • 一个源文件可以有多个非public类
  • 源文件的名称要和public类的名称保持一致
  • 如果一个源文件定义在某个包中,那么package语句应该在源文件的第一行
    如果源文件包含import语句,应该写在package语句下方类上方
  • import语句和package语句对源文件中所有类都有效,不能给不同的类不同的包声明

java 的基本数据类型
java的俩大数据类型
1 内置数据类型
java提供了8种基本数据类型,其中包括6种数字类型(四个整数型,俩个浮点型),一个字符串类型,一个布尔型

类型最小值最大值默认值包装类型介绍
byte-2727-10Byte数据类型8位,有符号,二进制补码表示的整数
short-215215-10Short数据类型是16位,有符号的以二进制补码表示整数
int-231231-10Integer数据类型32位,有符号的,以二进制补码表示的整数
long-263263-10LLong数据类型64位,有符号二进制补码表示的整数
float0.0fFloat数据类型是单精度,32位,浮点数
double--0.0dDouble数据类型是双精度,64位,浮点数
boolean--falseBoolean数据类型表示1位的信息,只有俩个取值true和false
char\u0000(即为0)\uffff(即为65,535)‘\u0000’Character是一个单一的16位Unicode字符

基本数据类型的特殊性

我们在程序中经常用到基本数据类型,他们需要我们特殊对待,之所以特殊对待是因为,new的对象都存储在堆里,因此new一个特别小的对象往往不是很有效,因此基本数据类型不用new来创建变量,而是创建一个并非是引用的"自动"变量,这个变量直接储存值,并放入栈中,因此更加高效

引用数据类型
对象,数组都是引用数据类型
引用数据类型的默认都为null

java 常量
常量在程序运行时不能被更改,用final修饰

自动类型转换

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double 

不能对boolean进行类型转换
不能吧对象类型转换成不相关的类型
把容量大转化为容量小的类型需要用强制转换
转换过程可能导致精度丢失
浮点数到整数,是通过舍弃小数得到,而不是四舍五入

如果转换前数据类型的位数,低于转换后的数据类型的位数,就可以自动转换到高位

==比较引用,equles比较值

java 修饰符

访问修饰符
可以用访问修饰符,对类,变量,构造方法,进行保护
default(默认修饰符,就是什么都不写),同一包内可以访问,不适用任何修饰符
privite 同一类内可以访问,
public 对所有类进行访问
protected 对同一包内的类,和所有子类可见(不能修饰外部类)

非访问修饰符
static final abstrct 等

java 运算符
1、前缀自增自减法(++a,–a): 先进行自增或者自减运算,再进行表达式运算。

2、后缀自增自减法(a++,a–): 先进行表达式运算,再进行自增或者自减运算

位运算符

java 循环
while循环
do…while 循环:

do {
       //代码语句
}while(布尔表达式);

do…while 如果布尔为false至少执行一次,如果布尔为true,则一直执行代码语句

for循环:

for(初始化; 布尔表达式; 更新) {
    //代码语句
}
for(;;)无穷循环

最先执行初始化步骤,可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句
然后检测布尔表达式的值,如果为true 循环体被执行,如果为false,循环终止,开始执行循环体后面的语句
执行完一次循环体后,更新循环控制变量
再次检测布尔表达式,循环上面的过程

java 增强for循环

break:跳出最里层循环
continue 适用任何循环控制结构,作用立即进行下一次的循环

java 方法的定义

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

java 加载顺序
现在new一个Dog的对象假如没有继承

  • 首次创建Dog对象或者访问Dog的静态成员方法时,载入Dog.class
  • 初始化静态变量和静态代码块
  • new Dog时,在堆上分配足够的空间
  • 初始化成员变量,代码块
  • 调用构造器

假如有继承

public class A {
    public static int a = print("我是A的静态变量");
    public int i = 11;

    public A() {
        print("我是构造器" + "i=" + i);
        i=88;
    }

    public static int print(String s) {
        System.out.println(s);
        return 42;
    }
}
public class B extends A {
    public static int b = print("我是B的静态变量");
    public int j = 55;

    public B() {
        print("我是B的构造器j=" + j);
        print("我是B的构造器i=" + i);

    }

    public static int print(String s) {
        System.out.println(s);
        return 42;
    }

    public static void main(String[] args) {
        System.out.println("调用了main方法");
        B b = new B();
    }
}
我是A的静态变量
我是B的静态变量
调用了main方法
我是构造器i=11
我是B的构造器j=55
我是B的构造器i=88

看到输出我们可以得到

  • 现加载父类的class,初始化父类的静态变量
  • 在加载子类的class,初始化子类的静态变量
  • 先new父类对象,再new子类对象

Java异常
Throwable这个java类被用来表示任何可以被抛出的类,Throwable可以分为俩类

  • Error用来表示编译时和系统错误(除特殊情况外,一般不用我们关心)
  • Exception 是可以被抛出的基本类型,在Java库,用户方法以及运行时故障中都可能抛出这个异常,所以程序员主要关系你的是Exception

特例RuntimeException,运行时异常

  • 运行时异常会自动被java虚拟机抛出,不用我们在代码里写,比如经常见的NullException等
  • 这些异常都是从RuntimeException中继承出来的

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值