java基础第一部分

java基础

关键字

image-20200930160552503
abstract 表明类或者成员方法具有抽象属性
assert 用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class
const 保留关键字,没有具体含义
关键字 含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

命名规则

所有命名规则必须遵循以下规则:

​ 1.名称只能由字母、数字、下划线、$符号组成

​ 2.不能以数字开头

​ 3.名称不能使用JAVA中的关键字。

​ 4.坚决不允许出现中文及拼音命名。

java中的类、方法、属性的命名规范

https://blog.csdn.net/pan_ye/article/details/79461958

​ 1.见名知意 :比如我要定义一个学生类,应该是class Student{},而不是class S{}

​ 2.对于类或者接口 : 一个单词的话首字母必须大写,多个单词的话每个单词的首字母必须大写

​ 比如:Student,常见的HelloWorld

​ 3.对于方法或者变量:一个单词的时候全部小写,多个单词的话除第一个单词首字母小写,其他单词首字母都大写

​ 比如:mian方法,setStudentAge()等

​ 4.对于常量 : 一个单词的常量需要所有字母大写,多个单词的话所有字母都需要大写,单词之间用_隔开

​ 比如:PI , STUDENT_MAX_AGE;

​ 5.对于包的命名 所有单词都小写,如cn

public class Demo01 {
    
    
    //正确命名
    String Aname = "ceshi";
    String aname = "ceshi";
    String $name = "ceshi";
    String _name = "ceshi";

    //大小写敏感
    String Man = "ceshi";
    String man = "ceshi";

    //错误命名
    //String 4name = "";
    //String %name = "";
    //String class = "";
}

数据类型

image-20200930161530023

image-20200930163503561

测试

public class Demo02 {
    
    
    //八大基本数据类型
    int num1 = 10;
    byte num2 = 127;
    short num3 = 50;
    long num4 = 60L; //后面需要加L

    //小数: 浮点数
    float num5 = 20.1F;//后面需要加F
    double num6 = 12.2645455;

    //字符
    char a = 'A';
    //错误,只能写一个汉字
    //char b = "测试";

    //布尔值
    boolean flag = true;

}
public class Demo03 {
    
    
    public static void main(String[] args) {
    
    
        //整数拓展  进制   二进制ob   十进制    八进制0   十六进制0x

        int i = 10;
        int m = 010;  //0
        int n = 0x10;   //十六进制0x  0-9 A-F

        System.out.println(i);
        System.out.println(m);
        System.out.println(n);

        System.out.println("=============================");

        float f = 0.1f;
        double f1 = 1.0/10;


        //false,float是有限的,接近但不等于,少用浮点数比较,应该使用BigDecimal数学工具类
        System.out.println(f==f1);

        float m1  = 564564564114f;
        double m2 = m1+1;
        System.out.println(m1==m2); //true

        System.out.println("=============================");

        char a= 'a';
        char b= '我';

        System.out.println(a);
        System.out.println((int)a);
        System.out.println(b);
        System.out.println((int)b);

        //所有字符本质还是数字
        // 编码 unicode编码,一个字符对应一个数字,(97=a,65=A)  0-65536
        // U0000   UFFFF
        char c = '\u0061';
        System.out.println(c);  //a
        System.out.println("=============================");
        //转义字符
        // \t制表符
        // \n换行
        System.out.println("Hello\nWorld");



    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VUmyAI9I-1601543836604)(https://i.loli.net/2020/10/01/fROCSTk4M2xyVPl.png)]

类型转换

1. 强制转换形式: (类型)变量名

2. 从高->低,需要强制转换 
3. 从低->高,自动转换
4. 不能对boolean值进行转换
5. 两个不相干的类型不能进行转换
6. 转换的时候可能存在内存泄漏或精度问题

image-20200930200137861

import java.sql.SQLOutput;

/**
 * @author hcc
 * @date 2020-09-30 20:04
 * @description
 */
public class Demo04 {
    
    

    public static void main(String[] args) {
    
    

        int i = 128;
        int m = 125;
        //强制转换 (类型)变量名 高->低
        byte j = (byte)i;  //[-128,127] ,内存溢出
        //自动转换 (类型)变量名 低->高
        double n = m;


        System.out.println(i);
        System.out.println(j);
        System.out.println(n);
        System.out.println((int)23.6);
        System.out.println((int)25.89f);

        /*
        注意点:
        1.不能对boolean值进行转换
        2.两个不相干的类型不能进行转换
        3.从高到低时,需要进行强制转换
        4.转换的时候可能存在内存泄漏或精度问题
         */

        System.out.println("===============================");

        //操作比较大数的时候,注意溢出问题
        //jdk1.7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int year = 20;
        int total = money*year; //-1474836480,溢出
        long total2 = money*year; //默认int,转换之前已经存在问题

        System.out.println(total);
        System.out.println(total2);

        //解决办法
        long total3 = money*(long)year; //先转换一个数为long
        System.out.println(total3);
    }
}

image-20200930203733875

变量

image-20200930231847669

public class Demo05 {
    
    

    //int a=1,b=2,c=3; //可读性差,不建议使用
    String name = "test";
    char v = 'V';
    Double pi = 3.14;


}

变量作用域

  1. 类变量

  2. 实例变量

  3. 局部变量

    public class Demo06 {
          
          
    
        //类变量  static
        static double f = 113;
        //常量,final和statics是修饰符,不区分前后
        final static Double PI = 3.14;
    
        //实例变量:从属于对象,如果不初始化,会有默认值
        //数类型:0  0.0
        //布尔值:默认false
        //除了基本类型外,其余默认值都是false
        String name;
        int i;
    
        public static void main(String[] args) {
          
          
    
            //局部变量,必须声明和初始化值,只在最近的大括号内有效
            int i = 10 ;
            System.out.println(i);
    
            Demo06 demo06 = new Demo06();
            System.out.println(demo06.name);
            System.out.println(demo06.i);
            System.out.println(f);
            System.out.println(PI);
    
        }
    
     
    
    }
    

image-20201001000114165

猜你喜欢

转载自blog.csdn.net/qq_34429554/article/details/108896044