Java之语法基础

①   Java编译

1.1  java

//  注释(单行)  解释、说明、不执行

/*-----*/    多行注释

/** 可以用于文档化处理的单行或多行注释 */


Class  关键字:声明一个类

1、Java程序所在文件后缀为  .java

2、Java程序应写在‘类’中

3、Java程序运行应当有main方法

4、编译指令javac与运行指令 .java

5、Java程序特性:一次编译  到处运行

 

Class  First{
 
    //一个类要执行,必须有main方法作为程序的入口
 
    public static void main(String []  args){
 
        //在控制台输入语句First
 
        System.out.println(“This is my first java!!!”);
 
    }
 
}


1.2  GC垃圾回收机制

垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身

//引用级别---地址 ---对象                          

public class Person {
       String name;
      
       public Person(String name) {
              super();
              this.name = name;
       }
 
       //析构方法         ----Object  当对象被回收的时候自动执行的方法
       @Override
       protected void finalize() throws Throwable {
              super.finalize();
              System.out.println("我被回收啦!!!!"+"  "+name);
             
       }
}
 
public class Test {
      
       public  void go(){
             
              Person per=new Person("我很强!");
             
              new Person("我很虚1");
              new Person("我很虚2");
              new Person("我很虚3");
 
             
       }
       public static void main(String[]args) throws InterruptedException {
                     new Test().go();
                     //申请垃圾回收---单独在一个子线程运行的
                     //只是申请垃圾回收,而不是马上执行垃圾回收
                     //立刻,马上,可控的垃圾回收,都是错误的
                     System.gc();
       }
}

②   变量

2.1  数据类型

public class demo {
   public static void main(String[]args) {
      //变量
      int num1=123;
      byte num2=33;
      short num3=44;
      long num4=123l;
     
      float f1=123.456789f;
      double d1=234.23456789;
     
      char c1='A';
      char c1='+';
      char c1='%';
      char c1='2';
      char c1='中';
     
      boolean b1=true;
      boolean b2=false;
   }
}


 

2.2  进制

二进制  0 1

十进制  0-9  

八进制  0-7  

十六进制  0-9  AB C D E F   F+1=10

进制的转换:

十进制-->二进制:除2求余  倒过来写  13  1101

二进制-->十进制:  第一位认为是2的0次方,依次累加

八进制-->二进制:   一位变三位    

二进制-->八进制:  三位一取

十六进制-->二进制:   一位变4位   

二进制-->十六进制:  4位一取

八进制--->十六进制    先转换成二进制,转换成十六进制  

十进制<-->八进制     

十进制<-->十六进制

 

原码   13   -13

0000  1101

反码

1111 0010


补码 :计算机中存储数据都是存储补码形式

 

正数:原码

 

负数: 绝对值 二进制  按位取反  加 1

0000 1101

1111 0010

 

1111 0011

 

最高位:0正数    1负数    符号位

-------------------------------

1111 0011


1111 0010

0000 1101

13

 

2.3  变量转换

1、自动转换型:容量小——>容量大

2、强制转型:容量大——>容量小   加强制符 (会造成精度降低或数据溢出)


               强制符:(转换目标)

                          int  num  =  69;

            char  c1   = (char)  num;

 

 

2.4  标识符命名规则

1、由字母、数字、下划线(_)、美元符号($)组成

2、不能以数字开头

3、区分大小写

4、长度无限制

5、不能是java中的保留关键字

 

命名习惯:见名识意

 

 

2.5  转义字符

1、特殊意义

\n  换行

\r  光标回至首位,输入的内容替换后面的

\t  水平制表  相当于(Tab)键 

 

2、避免混淆

单引号               双引号          \

\‘   产生一个单引号

\ “   产生一个双引号

\\    产生一个斜杠

 

 拼接用 “+

 

 

2.6  算数运算符

1、 byte、short做运算,结果将是int

 +     -     *   /    %(取余数:模)   + +(自加1)     - -(自减1)

2、 a+b   操作数      运算符        表达式

当+ +放在操作数后面时,为后缀存在时,整个自增表达式的值取当前操    作数的值,然后再自增1(操作数的值)


C++  /    ++C

 

C++: 自增运算在变量C被本次使用后再进行

即先对C操作后再++


++C: 首先对变量C进行自增运算,然后变量C才被本次表达式使用

              

public class demo1 {
   public static void main(String[] args) {
      int a = 10;
      int b = 10;
     
      int m = a++ + ++a - --b - a++ ;
      int n = b++ - ++b + a++ + a-- ;
     
      System.out.println(a);
      System.out.println(b);
      System.out.println(m);
      System.out.println(n);
   }
}

 

 

2.7  赋值运算符

=    赋值

+ =   a+=b--->   a=a+b

- =   a-=b--->   a=a-b

* =   a*=b--->   a=a*b  num*=6.0 - -> num=(int)(num*6.0)

/ =   a/=b--->   a=a/b

% =   a%=b--->   a=a%b

 

2.8  关系运算符

= =   4==3--->   false

!=   4!=3--->  true

< =

> =

Boolean 只能比较相等/不等  不能比较大小

 

2.9  逻辑运算符

&   与     false & true    false

|   或     false| true    true

ˆ   亦或   true  ˆ false   true

!   非       !true        false

(且) &&  短路与  false && true  false

||  短路或 false || true  true

 

在计算机中1为真,实际是只要非0即真,0为假

 

逻辑或-------------------一真才真

逻辑与-------------------一假则假

逻辑亦或------------------不一样为true  一样为false

(优先级)非 > 与 >或

 

 

三目运算符

X ? Y : Z

X为true 输出Y,否则输出Z

 

 

移位运算符

<<

左移在变大  变大2的移位次方

 最快速度算出2乘以8   2<<3

 21<<3


 

③   表达式和语句

3.1  if语句

if(条件语句){…………}

if(条件语句){…………}else{…………}

if(条件语句){…………}else if{条件语句}{…………}

if(条件语句){…………}else if{条件语句}{…………}else{…………}

 

3.2  switch语句

switch (表达式) {

       case 取值1:

           语句块1

            break;

       case 取值2:

           语句块2

            break;

       case 取值3:

           语句块3

           break;

 

       default:

           break;

}

 

表达式必须是:int  byte char  short 枚举 字符串

 

3.3  循环语句

       1、while语句

           while(条件表达式){

              语句块;

        }


       2、do-while 语句

           do{

              循环操作;

       }while(循环条件);

 

       3、for 循环

           for (初始化参数;判断条件;更新循环变量){

              循环体;

        }

 

       4、while(true)语句

           while(true){

              语句块;

       }

          break;

           无限死循环语句块直到中断产生

 

      5、递归

                 方法中调用自己的方法

 

 

break

       终止当前整个循环的执行

       还可以用在switch语句中

 

return :

       返回一个值

       代码执行到此处终止

 

continue :

       跳出本次循环,直接进入下次循环

 

④   算法

 4.1  一维数组

静态初始化

int [] as  = {1,2,3,4,5};

 

动态初始化

1、

int [] as  = new int[5];

 as[0] = 1;

as[1] = 2;

as[2] = 3;

 

2、

int [] as  = new int[5]{5,4,3,2,1};

角标最大取到数组大小-1(as.length)从0开始     // .length属性

 

数组:

容器类型,可以放好多个值

 

特点:

1、类型确定

2、大小确定

 

 

4.2  数组的遍历

1、for循环


   for(int i=0;i
     
     


2、增强for循环

   for(int num:nums){
   
       System.out.println(num);
       
   }
   


 

4.3  二维数组

int [] [] nums = {{1,2,3},{4,5,6}};
      
       遍历 :
 
           for (int [] num:nums){
 
              for (int n:num){
 
                  System.out.println(n);
 
              }
 
           }

 

 

 

 

 

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值