第一天java基础语法


第一个程序 Hello,World!

  1. 随便新建一个文件夹,存放代码
  2. 新建一个Java文件
    • 文件后缀名为java
    • Hello.java
    • 【注意点】系统可能没有显示后缀名,必须手动打开
  3. 编写代码
public class Hello{
	public static void main(String[] args){
		System.out.print("Hello,World!");
	}
		
}
  1. 编译 javac java文件(加后缀),会生成一个class文件  // javac   Hello.java
  2. 运行class文件 Java文件(不需要加后缀)//java   Hello

  • 数值类型 --->整数

    ? --->浮点

    ? -->字符

  • 布尔类型 true false

  • 引用数据类型

    • 类
    • 接口
    • 数组
  • public class Demo02 {
        public static void main(String[] args)
            //八大基本数据类型
            int num1 =  10;    //最常用
            byte num2 = 20;
            short num3 = 30;
            long num4 = 30L;     //long类型要在数字后面加个L
            //浮点数
            float num5 = 50.1F;   //浮点型要在数字后面加个F
            double num6 = 3.14159265
            //字符
            char name = '国';
            //String name = "zhaoweihang"
            //布尔型  是非
            boolean flag = true;
            boolean flag1 = false;
        }
    }
    
    public class Demo03 {
        public static void main(String[] args) {
            //整数拓展:   进制  二进制0b    十进制    八进制0   十六进制0x
            int i = 10;
            int i2 = 010; //八进制0
            int i3 = 0x10;   //十六进制0x  0-9  A-F   16
            System.out.println(i);
            System.out.println(i2);
            System.out.println(i3);
            System.out.println("=============================");
            //====================================================
            //浮点数拓展?     银行业务怎么表示?钱
            //BigDecimal  数学工具类
            //====================================================
            //float   有限  离散  舍入误差  大约  接近但不等于
            //double
            //最好完全使用浮点数进行比较
            //最好完全使用浮点数进行比较
            //最好完全使用浮点数进行比较
    
            //尽量不用浮点数进行比较
            float f = 0.1f;  //0.1
            double d = 1.0/10;  //0.1
    
            System.out.println(f==d); //false
    
            float d1 = 2132123123123f;
            float d2 = d1 + 1;
    
            System.out.println(d1==d2);  //true
    
            //====================================================
            //字符拓展
            //====================================================
            System.out.println("=============================");
            char c1 = 'a';
            char c2 = '中';
            System.out.println(c1);
            System.out.println((int)c1);  //强制转换
            System.out.println(c2);
            System.out.println((int)c2); //强制转换
            //所有字符本质还是数字
            //编码  Unicode 表:97 = a  2字节   0-65536     2的16次方=65536
    
            char c3 = '\u0061';
            System.out.println(c3);  //a
    
            //转义字符
            //   \t  tab键     \n换行
            System.out.println("Hello\tWorld!");
            System.out.println("=============================");
            String sa = new String("hello world1");
            String sb = new String("hello world1");
            System.out.println(sa==sb);
    
            String sc = "hello world!";
            String sd = "hello world!" ;
            System.out.println(sc==sd);
    
            //对象   从内存分析
    
            //布尔值拓展
            boolean flag = true;
    
            if (flag==true){}  //新手
            if (flag) {}    //老手
            // less  is more  代码要精简易读
    
            }
        }
    }
    
    
    1. 类型转换

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

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

      ? byte , short , char --->int-------->long------->double

      • 运算中,不同类型的数据必须转化为同一类型,才可进行运算
      • 强制类型转换
      • 自动类型转换



      public class Demo04 {
          public static void main(String[] args) {
              int i = 128;
              byte b = (byte) i;  //内存溢出
      
              //强制转换   (类型)变量名   高---->低
              //自动转换                  低----->高
      
              int i1 = 128;
             double b1 = i1;
      
              System.out.println(i);
              System.out.println(b);
              System.out.println(i1);
              System.out.println(b1);
      
              /*
              注意点:
              1.不能对布尔值进行转换
              2.不能把对象类型转换为不相干的类型
              3.在把高容量转换为低容量时候,强制转换
              4.转换的时候可能存在内存溢出或精度问题!
               */
              System.out.println("================================");
              System.out.println((int) 23.7);   //23
              System.out.println((int) 45.89F);   //45
              System.out.println("================================");
              char c = 'a';
              int d = c+1;
              System.out.println(d);
              System.out.println((char) d);
      
          }
      }
      
      
      public class Demo05 {
          public static void main(String[] args) {
              //操作比较大的数的时候,注意溢出问题
              //JDK7新特性, 数字之间可以用下划线分割,且不会被打印出
              int money = 10_0000_0000;
              System.out.println(money);
              int year = 20;
              int total = money*year;//-1474836480  计算的时候溢出了
              long total2 = money*year;//计算前就已经溢出了
      
              long total3 = money*((long)year);  //先转换在计算就不会溢出了
              System.out.println(total);
              System.out.println(total2);
              System.out.println(total3);
          }
      }
      
      
    2. 变量:可以变化的量

      • java是一种强类型语言,每个变量必须声明其类型

      • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

      • type  varName  [=value][{,varName[=value]{}];
        //数据类型  变量名  =   值;  可以使用逗号隔开来声明多个同类型变量,但是不建议单行定义多个变量
        
      • 主要事项:

        • 每个变量必须都有类型,类型可以是基本类型,也可以是引用类型
        • 变量名必须是合法标识符
        • 变量声明是一句完整的语句,因此每一个声明必须以分号结束。
      • 变量作用域

        • 类变量
        • 实例变量
        • 局部变量
        public class Veriable{
            static int allClicks=0;    //类变量
            String str = "hello world"; //实例变量
            
            public void method(){
                int i = 0;   //局部变量
            }
        }
        
        public class Demo07 {
        
            //类变量  static  即静态
            static double salary = 2500;
        
            //属性:变量
            //实例变量:从属于对象;如不自行初始化,输出这个类型的默认值 0.0.0
            //布尔值:默认值是false
            //除了基本类型,其余全是null;
            String name;
            int age;
        
            //main方法
            public static void main(String[] args) {
                //局部变量:必须声明和初始化
                int i =10;
                System.out.println(i);
                //变量类型  变量名字 = new Demo07();
                Demo07 demo07 = new Demo07();
                System.out.println(demo07.age);
                System.out.println(demo07.name);
        
                //类变量  static
                System.out.println(salary);
        
            }
            //其他方法
            public void add(){
                //System.out.println(i);
            }
        }
        
    3. 常量 初始化后不能改变的量! 不会变动的数值

      • 所谓的常量可以理解为一种特殊的变量,它的值被设定后,在程序运行中不允许改变

      • final 常量名= 值
        final double PI = 3.14;
        
      • 常量名一般使用大写字母

      • public class Demo08 {
            //修饰符  不存在先后顺序
            static final double PI = 3.14;
        
            public static void main(String[] args) {
                System.out.println(PI);
            }
        }
        
    4. 变量命名规范

      • 所有变量、方法、类名:见名知意
      • 类成员变量:首字母小写和驼峰原则 monthSalary
      • 局部变量:首字母小写和驼峰原则
      • 常量:大写字母和下划线 MAX_VALUE
      • 类名:首字母大写和驼峰原则 Man GoodMan
      • 方法名:首字母小写和驼峰原则 run() runRun()