java基础语法

注释

平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。

注释并不会被执行,是给我们写代码的人看

书写注释是一个非常好的习惯

java中的注释有三种:

单行注释 可以注释一段数字//

多行注释 可以注释多行数字/**/

文档注释 /**

*/

关键字

 


标识符注意点

 

 

数据类型

 


变量

 

整数数据类型:byte shore int long

浮点数:float double

字符类型:char

布尔型:boolean


 

什么是字节


拓展

整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x

int i = 10;

int i2 = 010;八进制0

int i3 = 0x10;十六进制0x 0-9 A-f 15

 

浮点数拓展 银行业务怎么表示?钱

float double 有限 离散 含入误差 大约 接近但不等于

要用BigDecimal 数学工具类

最好不要完全使用浮点数进行比较

float f=0.1f;
double d=1.0/10;
System.out.println(f);
System.out.println(d);
System.out.println(f==d);
float f1=313131313131f;
float f2=f1+1;
System.out.println(f1==f2);

字符拓展

char l='w';
char n='中';
System.out.println((int)l);强制转换
System.out.println(l);
System.out.println((int)n);强制转换
System.out.println(n);
所有的字符本质还是数字
编码  Unicode 表:(97=a 65=A) 2字节 65536, Excel 2 16=65536
这些都是些底层的原理 要知道怎么用

转义字符

\t 制表符

\n换行

\v垂直制表符

\换页

\r回车

\ "双引号

\ ‘ 单引号

\ \反斜杠

 

String sa=new String(original"hello,world");
String sb=new String(original"hello,world");
System.out.println(sa==sb);>false
String sc="hello,world";
String sd="hello,world";
System.out.println(sc==sd);true

对象 从内存分析

布尔值扩展

boolean flag=true;
if(flag==true){}//新手程序员
if(flag){}//老手
//less is More 代码要精简易读

类型转换

由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

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

byte short ,char--->int -->long-->float-->double 小数的优先级一定大于整数

一个字节8位 16位 16位 32位 64位 32位 64位

1字节 2字节 2字节 4字节 8字节 4字节 8字节

运算中,不同类型的数据先转化为同一类型,然后进行运算。

强制类型转换

int i=128;
byte c=(byte)i;//内存溢出
---
//强制转换 (数据类型)变量名
System.out.println(c);
System.out.println(i);

自动类型转换

int i1=3000;
double i2=i1;
System.out.println(i1);
System.out.println(i2);
//自动转换   低--高
/*
* 注意点:
*1,不能对布尔值进行转换
* 2,不能把对象类型转换为不相干的类型
* 3,在把高容量转换到低容量的时候,强制转换
* 4,转换的时候可能存在对象溢出,或者精度问题!
* */
System.out.println((int)23.7);
System.out.println((int)-45.3f);

char b='a';
int m=b+1;
System.out.println((int)m);>>98
System.out.println((char)m);>>b
//操作比较大的数的时候,注意溢出问题
//Jdk7的新的性,数字之间可用下划线分割
    int money=10_0000_0000;
    int years=20;
//   int total3=money*years;//-1474836480, 计算的时候溢出了
//   long total2=money*years;//默认的就是int,转换之前已经存在问题?
    long tota4=money*(long)years;//先把一个数转换为loog
    System.out.println(tota4);>>2000000000

变量

  • 变量是什么:就是可以变化的量!

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

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

     

    type varName [=value] [{,VaeName[=value]}];

//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量

  • 注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。

  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

    变量

int a=10;
String b="张哲源";
char c='z';
double pi=3.14;
float e=1.2f;

变量作用域

类变量

实列变量

局部变量

public class Demo05 {
   //类变量 static
   static double salary = 2500;
   
   
   
   //实列变量:从属于对象:如果不自行初始化,这个类型的默认值 整数0 浮点型0.0 字符串u0000
   //布尔值默认是false false是0 true是1;
   //除了基本类型 其余的默认值都是null;
   String name="张哲源";
   int age;
   
   //main方法
   public static void main(String[] args) {
       //局部变量;必须声明初始化值
       int i = 10;
       System.out.println(i);>>10

       
  //   实列变量 变量类型 变量名字 = new Demo05();
       Demo05 Demo05 = new Demo05();
       System.out.println(Demo05.age);>>0
       System.out.println(Demo05.name);>>张哲源

       //类变量 static
       System.out.println(salary);>>2500
  }
}

常量

常量(Constant):初始化(initalize)后不能再改变值!

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

final 常量名=值

final double PI=3.14;

常量名一般使用大写字符。

public class Demo06 {
static是修饰符
//修饰符,不存在先后顺序\
static final Double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);>>3.14
}
}

变量名的使用规范

 

运算符

算数运算符 二元运算符

 + - * / %
ctrl+d 复制当前行到下一行
      int a=10;
      int b=20;
      int c=8;
      int d=5;
      System.out.println(a+b);>>30
      System.out.println(a-b);>>-10
      System.out.println(a*b);>>300
      System.out.println((double)a/b);>>0.5
      System.out.println(c/d);>>1
      System.out.println(c%a);取模运算8  加上double类型转换后是8.0
         
     
double z=1000.3;
float x=2000.1f;
long v=12123;
int n = 1233;
short m=123;
byte g=12;
System.out.println(z+x+v+n+m+g);//是double数据类型>>16491.399975585937
System.out.println(x+v+n+m+g);//是float数据类型>>15491.1
System.out.println(v+n+m+g);//是long数据类型>>13491
System.out.println(n+m+g);//是int数据类型>>1368
System.out.println( m+g);//是int数据类型>>135
不同数据类型运算自动转换为容量大的数据类型
整数类型运算没有long类型都是int数据类型

 

关系运算符返回的结果:要么是正确true,错误false 是布尔值

>大于   <小于   ==等于   !=不等于    >=大于等于   <=小于等于

int a=10;
int b=20;
int c=21;
System.out.println(a>b);false大于运算符
System.out.println(a<b);true 小于运算符
System.out.println(a==b);false等于运算符
System.out.println(a!=b);true不等于运算符
System.out.println(a>=b);false大于等于运算符
System.out.println(a<=b);true小于等于运算符

自增自减运算符 一元运算符

 //++ 自增 --自减 
int a=3;
int b=++a;//执行完成这行代码后,先给b赋值,在自增
//a=a+1
System.out.println(a);>>4
//a=a+1
int c=++a;//执行完这行代码前,先自增,在给c赋值

System.out.println(a);>>5
System.out.println(b);>>3
System.out.println(c);>>5
   
自减
     int a=5;
     int b=a--;
     int c=--a;
      System.out.println(a);>>3
      System.out.println(b);>>5
      System.out.println(c);>>3
   //幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具类操作
    double pow = Math.pow(2,3);
    System.out.println(pow);>>8.0

逻辑运算符

// &&与(and) ||或(or) !非(取反)
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(b&&a));>>false//逻辑与运算,两个变量都为真,结果才是true 有一个数为假就是false
System.out.println("a || b:"+(b||a));>>true//逻辑或运算,两个变量有一个为真,结果才是true
System.out.println("!(a&&b:)"+!(b&&a));>>true//如果是真,则为假,如果是假,则为真
System.out.println("!(a||b:)"+!(b||a));>>false
int c=5;
boolean d=c<4||c++<8;
System.out.println(d);false
System.out.println(c);6
boolean d=c<4&&c++<8;
System.out.println(d);false
System.out.println(c);5

位运算

 & 与   | 或  ^疑惑   ~取反 

A = 0011 1100
b = 0000 1101
   
A&B 0000 1100与位运算  上下两位都是1结果为1  否则为0
A|B 0011 1101或位运算  上下两位都是0结果为0  否则为1
A^B 0011 0001疑惑位运算 上下两位相同则为0 否则为1
~B  1111 0010取反位运算
~A  1100 0011取反位运算
和二进制有关
<<左移运算符乘2
>>右移运算符除2
    System.out.println(8<<1);16
    System.out.println(2<<4);32
    System.out.println(4<<1);8
    System.out.println(8>>2);2
    System.out.println(32>>4);2
*     0000 0000  0
*     0000 0001  1
*     0000 0010  2
*     0000 0011  3
*     0000 0100  4
*     0000 0101  5
*     0000 0110  6
*     0000 0111  7
*     0000 1000  8
*     0000 1001  9
*     0000 1010  10
*     0000 1011  11
*     0000 1100  12
*     0000 1101  13
*     0000 1110  14
*     0001 1111  15
*     0001 0000  16
      0001 0001  17
      0001 0010  18
      0001 0011  19
      0001 0100  20

条件运算符 三元运算符

x  ? y : z
   如果x==true 则结果为y否则为z
      int a=80;
       String type=a<60?"不及格":"及格";
       System.out.println(type);>>及格

扩展赋值运算符:+= ,-= , *= , /=

int a=10;
int b=20;
a+=b;//a=a+b
a-=b;//a=a-b
a*=b;//a=a*b
a/=b;//a=a/b
字符串连接符     Strint类型
System.out.println(""+a+b);1020
System.out.println(a+b+"10");3010
System.out.println("10*20="+a*b);>>10*20=200
   

 

 

 

 


posted @ 2021-07-03 14:38  你又睡不着了  阅读(77)  评论(0)    收藏  举报