Java基础语法--类型转换,常量,变量以及运算符的学习

 

Java基础

Java基础语法

类型转换

byte,short,char--int--long--float--double

容量低--------------------------------------------高(小数优先级高于整数)

1.强制类型转换(由高到低)

格式:(类型)变量名

例1.1

public static void main(String[] args) {
       double a=100;
       int b=(int)a;//将a由double强制转换为int
       System.out.println(a);
       System.out.println(b);//b=100
  }

例1.2

public static void main(String[] args) {
       char c='a';
       int i=(int)c;
       System.out.println(i);//97
       int i2=i+1;
       System.out.println(i2);//98
       System.out.println((char)i2);//b
  }

 

注意:强制转换时应注意容量

  public static void main(String[] args) {
       int i=128;
       byte b=(byte)i;
       System.out.println(i);//i=128
       System.out.println(b);//b=-128
  }

原因:byte容量为-128--127,内存溢出

2.自动类型转换(由低到高)

public static void main(String[] args) {
       int a=100;
       double b=a;//int--double 由低到高自动转换
       System.out.println(a);
       System.out.println(b);//b=100
  }

其它注意:

a.不能对布尔值进行转换

b.不能把对象类型转换为不相干的类型

c.转换注意精度问题

public static void main(String[] args) {
       System.out.println((int)23.7);//=23
       System.out.println((int)-44.44);//=-44
  }

d.操作比较大的数的时候注意溢出问题

public static void main(String[] args) {
       int money=10_0000_0000;
       int years=20;
       int total1=money*years;
       System.out.println(total1);//-1474836480,错!int内存溢出
       long total2=money*years;
       System.out.println(total2);//-1474836480,错!因为money和years都是int类型,转换之前已经存在问题
       long total3=(long) money*years;//正确做法,Hooray!
       System.out.println(total3);//20000000000
  }

变量、常量、作用域

1.变量的命名规范

1.1 所有变量、方法、类名:见名知意

1.2 类成员变量:首字母小写和驼峰原则:monthSalary

1.3 局部变量:首字母小写和驼峰原则

1.4 常量:大写字母和下划线:MAX_VALUE

1.5 类名:首字母大写和驼峰原则:HelloWorld

1.7 方法名首字母小写和驼峰原则:runRun()

2.变量

public class Day04Demo05 {
   //类变量 关键字static 在其它方法中引用时不用new
   static double salary=2500;
   
   //实例变量,从属于对象,要new
   int age;
   String name;
   /*注:1.实例变量可以在其它的方法中使用
   *   2.数值类型默认值为0 0.0 ...
   *   3.bool值默认为false
   *   4.除了基本类型,其余默认值都是null */

   //main方法
   public static void main(String[] args) {
       //i为局部变量,必须声明且初始化值,使用范围仅在本方法内
       int i=10;
       System.out.println(i);
       Day04Demo05 day04Demo05 = new Day04Demo05();//alt+enter出现“=”前半部分
       System.out.println(day04Demo05.age);
       System.out.println(day04Demo05.name);
  }
   
   //其它方法
   public void add(){
       System.out.println(salary);
  }
}

3.常量

public class Day04Demo06 {
   final static int MONEY=100;
   static final double PI= 3.14;//static final 前后顺序不影响 !!!常量名必须为大写!!!
   public static void main(String[] args) {
       System.out.println(MONEY);
       System.out.println(PI);
  }
}

运算符

1.基本运算符

public static void main(String[] args) {
   int a=10;
   int b=20;
   int c=30;
   int d=40;//IDEA快速复制当前行快捷键:ctrl+D
   System.out.println(a+b);
   System.out.println(a-b);
   System.out.println(a*b);
   System.out.println(a/(double)b);//此时应类型转换,否则a/b的值为0
   long i1=123445567;
   int i2=123;
   byte i3=11;
   short i4=1;
   System.out.println(i1+i2+i3+i4);//long+int+byte+short=long
   System.out.println(i2+i3+i4);//int+byte+short=int
   System.out.println(i3+i4);//byte+short=int
   System.out.println(a>b);
   System.out.println(a<b);
   System.out.println(a==b);
   System.out.println(a!=b);//返回结果是bool类型,true/false
}

2.自增、自减运算以及Math类初涉

public static void main(String[] args) {
       int a=3;
       int b=a++;//先b=a=3 再a自增 a=a+1=4
       System.out.println(a);
       int c=++a;//先a自增 a=a+1=5 再c=a=4
       System.out.println(a);
       System.out.println(b);
       System.out.println(c);
       double pow=Math.pow(2,3);//Math类下的幂运算
       System.out.println(pow);//2*2*2=8
  }

3.逻辑运算与位运算

3.1逻辑运算

public static void main(String[] args) {
       boolean a=true;
       boolean b=false;
       System.out.println(a&&b);//false 与
       System.out.println(a||b);//true 或
       System.out.println(!(a&&b));//true 注意 非 的写法
  }
//短路运算
       int c=5;
       boolean m=c<4&&(c++)<10;
       System.out.println(m);//false
       System.out.println(c);//c=5 c!=6,由此可知计算机只判断了 && 的前半部分为false,这就是短路运算

3.2位运算会出现面试题

/*
       A=1100 0101
       B=1001 1010
       -----------
       A&B 1000 0000 全1才1 其它为0
       A|B 1101 1111 有1就1 全0才0
       A^B 0101 1111 同则0 不同则1
       ~B 0110 0101 取反
       -----------
       * */
       //!!面试题!! 如何快速运算8*4 8/4 位运算 效率极高
       System.out.println(8<<2);// =8*(2*2) =0000 1000 中的1左移2位 变成 0010 0000
       System.out.println(8>>2);// =8/(2*2) =0000 1000 中的1右移2位 变成 0000 0010

4.扩展赋值运算符 += 、-=

public static void main(String[] args) {
       int a=11;
       int b=3;
       a+=b;//a=a+b=11+3
       System.out.println(a);
       a-=b;//a=a-b=14-3
       System.out.println(a);
       //字符串连接符 !!面试题!!
       System.out.println(""+a+b);//113 ""是String类型,把a b都转换位String类型再进行连接
       System.out.println(a+b+"");//14
  }

5.三元运算符 ?:必须掌握

public static void main(String[] args) {
       double score=90;
       String type=score<60?"不及格":"及格";//score<60为true 则 不及格 反之 及格
       System.out.println(type);
  }

6.()的优先级

public static void main(String[] args) {
       int a=11;
       int b=3;
       int c=2;
       System.out.println((a+b)*c);//数学计算中括号内先运算在Java中同样适用
  }

包机制

一般利用公司域名倒置作为包名

www.baidu.com 包名为com.baidu.www

当想使用另一个包中的类时,导入(import)包

import com.KuangStudy.base.*;//*表示base下的所有类

阿里巴巴开发手册

JavaDoc生成文档

在类上方的注释就是对类的注释

在方法上方的注释就是对方法的注释

生成javadoc文档

1.法1 命令行生成

在当前Doc.java文件目录下进入cmd

查看文件夹目录,发现生成新文件,打开index.html

2.法2 IDEA生成

01

02

-encoding UTF-8 -charset UTF-8

此处不要写错,否则会报错 :javadoc: 错误 - 非法的程序包名称: "UTF-8"

 

posted @ 2021-02-04 22:41  xiuga  阅读(409)  评论(0)    收藏  举报