JAVA语言的基础组成

1.关键字

被赋予特殊JAVA含义的单词。关键字都是小写。

2.标识符

在程序中自定义的一些名称;26个英文字母大小写,0-9、_、$组成。比如说类名就是一种标识符

1.数字不能开头

2.不可以使用关键字

3.注释

用于注解说明程序的文字。多行注释中不能有多行注释。可以用多行注释缩小确定错误的范围

1.//单行注释

2./*

多行注释

*/

3./**

文档注释

*/

4.常量和变量

常量:

1整数常量2小数常量3.布尔型常量(0,1)4.字符常量(将一个数字字母或者符号用单引号标示'')5.字符串常量(将一个或多个数字字母或者符号用单引号标示"")6.null常量(只用一个数值null)

对于整数,有四中表现形式。

二进制:0、1,满2进1

八进制,0-7,满8进1,用0开头表示

十进制:0-9,满10进1

十六进制:0-9,A-F,满16进1,用0x开头表示

byte字节=8个二进制位  0000-00000000-00000000-00000000-0000

二进制位=bit位

1kb=1024byte

八进制其实就是3个二进制为一组

十六进制其实就是四个二进制为一组:1111-1111换算成十进制就是255

二进制的负数其实就是这个数的二进制数取反再加一,负数的二进制最高位是1

变量:

概念:

内存中的一个存储区域。

该区域有自己的变量名和类型

该区域的数据可以在同一类型范围内不断变化

为什么要定义变量:

用来不断存放同一类型的常量,并可以重复使用

使用变量注意:

变量的作用范围(用一对{}之间有效)

初始化值

tip:01100001---a

eg: 

class Demo

{

 public static void main(String[] args)

{

  byte b = 6; 

/*

在内存中开辟一个byte型变量b的空间,其大小为0000-0000,并给b赋值6,而在JAVA中整数都默认是int型,所以在内存中本应为0000-0000 0000-0000 0000-0000 0000-0110的6被强制转换为byte型的0000-0110

*/

  byte x1 = 7;

  byte x2 = 3;

  b = x1 + x2;

/*

因为byte型的变量取值范围是-128~127,两个byte型相加有可能超出其取值范围,所以编译器会报错。

*/

  System.out.ptingln(b);

 }

}

编译会报错


5.运算符

+  -  *  /  %取模  --自减

++自增:在原有数据上加1再赋给原有数据 

eg:

int a=3,b;

b = a++;

/*

a++的特点在于,a自身的值需要先参与其他运算,然后再++,内存会开辟一个临时存储a本身值的空间,等号右边算完后,再把临时空间中a的值赋给b。

*/

b = ++a;


eg:

int i = 3;

i = i++; 

问i=? i=3



 += -= /= *=

eg:

short s = 3; //short只有两个字节,int型的3强转赋值进short型的s。

s+=4;//一次赋值运算,有一个自动转过程。

s = s + 4;//两次运算,s是一个变量,不做自动转换。

编译会报错


  

比较运算符 > < != == >= <= instanceof,比较运算符de结果必须是true或者是false


逻辑运算符 用于连接两个boolean的表达式

&:与 &符号两边都得为真则输出true否则都是false。无论左边运算结果是什么,右边都参与运算。

|:或 |符号两边有一个为真则输出true,两个都是假则输出false。

^:异或和或有点不一样 ture^ture=falseture^false=turefalse^ture=turefalse^false=false

!:非 判断事物的反面 !!ture = ture

&&:双与 运算符左边遇到假就直接输出false,符号右边不参与运算

||:双或 运算符左边遇到真就直接输出true,符号右边不参与运算


位运算符:用于二进制位运算的符号  

<< 左移 左移几位就是该数据乘以2的几次方,左移可以完成2次幂运算。

>> 右移 右移几位就是该数据除以2的几次方,对于高位出现的空位,原来是什么就用什么补充

>>>无符号右移 数据进行右移时,对于高位出现的空位,不论原来是什么,空位都用0补充

&与运算

|或运算 特点在于可以将有效位保留

^异或运算 特点是一个数异或同一个数两次,结果还是这个数

~反码


eg:
6&3=?    6&3=2

0000-00000000-0000 0000-0000 0000-0110

& 0000-0000 0000-0000 0000-0000 0000-0011
-----------------------------------------
0000-0000 0000-0000 0000-0000 0000-0010
3<<2=? === 3*2^2=12
|0000-0000 0000-0000 0000-0000 0000-0011|

00|00-0000 0000-0000 0000-00000000-11 | 左移2位

------------------------------------------
0000-0000 0000-0000 0000-0000 0000-001100


最有效率的算出2*8=?

System.out.println(2<<3);


对两个整数变量进行互换。(开发时使用阅读性强)

int a=3,b=5,c;

System.out.pringtln("a="+a+"b="+b);

c=a;

a=b;

b=c;

System.out.pringtln("a="+a+"b="+b);


对两个整数变量进行互换。(不用第三方变量)

方法1://这种方式不要用,如果两个整数数值过大,会超出int范围,会强制转换,丢失精度。

int a=3,b=5;

a=a+b;

b=a-b;

a=a-b;

System.out.pringtln("a="+a+"b="+b);

方法2:

int a=3,b=5;

a=a^b;//a=3^5

b=a^b;//b=a^b^b=a;b=3

a=a^b;//a=3^5^3=5;a=5

System.out.pringtln("a="+a+"b="+b);

三元运算符(if else的简写格式)

格式:

(条件表达式)?表达式1:表达式2

如果条件为true,运算结果显示表达式1;

如果条件为false,运算结果显示表达式2;

eg:int x = 3,y = 4,z;

z=(x<y)?y:x;




6.语句

程序流程控制

顺序结构

判断结构

if语句

1. if(条件表达式)

{

执行语句;

}

2. 

 if(条件表达式)

{

执行语句;

}else

{

执行语句;

}

3. 

  if(条件表达式)

 {

 执行语句;

 }else if(条件表达式)

 {

 执行语句;

 }

 ......

 else

 {

 执行语句;

 }

局部代码块可以定义局部变量的生命周期。

选择结构

switch语句:相当于一个选择题

switch(表达式)//byte short int char

{

 case 取值1:

  执行语句;

  break;//跳出

 case 取值2: 

  执行语句;

  break;

......

 default:

  执行语句;

  break;

}


eg:

public class Season {
    public static void main(String[] args) {
        int mounth = 22;
        /*
        if (mounth == 3 || mounth == 4 || mounth == 5)
        {
            System.out.println("当前季节是春季");
        } else if (mounth == 6 || mounth == 7 || mounth == 8)
        {
            System.out.println("当前季节是夏季");
        } else if (mounth == 9 || mounth == 10 || mounth == 11)
        {
            System.out.println("当前季节是秋季");
        } else if (mounth == 12 || mounth == 1 || mounth == 2)
        {
            System.out.println("当前季节是冬季");
        } else
            {
            System.out.println("没有对应的季节");
            }
            */
        switch(mounth)
        {
            case 3:
            case 4:
            case 5:
                System.out.println("当前季节是春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("当前季节是夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("当前季节是秋季");
                break;
            case 1:
            case 2:
            case 12:
                System.out.println("当前季节是冬季");
                break;
            default:
                System.out.println("没有对应的季节");
                break;
        }
    }
}
if和switch的应用:

if:1.对具体的值进行判断 2.对区间判断 3.对运算结果是boolean类型的表达式进行判断

switch:1.对具体的值进行判断 2.值的个数通常是固定的

对于几个固定的值判断,建议使用switch语句,因为switch语句会一次性将所有程序加载到内存中,效率相对高

循环结构:

while循环结构:先判断再执行

public class Wh {
    /*
    while(条件表达式)
    {
        执行语句;
    }
     */
    public static void main(String[] args) {
        int x=1;
        while(x<=3)
        {
            System.out.println("x="+x);
            x++;
        }
    }
}
do while循环结构:先执行再判断,无论条件满不满足,循环体至少执行一次

public class Dw {
    public static void main(String[] args) {
        /*
        do
        {
            执行语句;
        }while();
        */
        int x = 1;
        do {
            System.out.println("x="+x);
            x++;
        }while (x<=3);
    }
}

for循环

/*
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;(循环体)
}
 */
public class ForDemo {
    public static void main(String[] args) {
        for(int x = 1; x<3 ; x++)
        {
            System.out.println("x="+x);
        }
    }
}
for和while的特点:

1.for和while可以互换。2.格式上的不同,在使用上有点区别,如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别在于变量的作用域。

无限循环最简单的形式:while(true){} for(;;){}

什么时候使用循环结构呢?

当对某些代码执行很多次时,使用循环结构完成。

当对一个条件进行一次判断时,可以使用if语句。

当对多个条件进行多次判断时,可以使用while语句。

break(跳出)用于switch语句和循环语句,当break语句单独存在时,下面不要定义其他语句,因为执行不到

可以给循环取名字,用break指定特定的循环跳出

continue(继续)用于循环结构,结束本次循环继续下次循环

7.函数(方法)

函数的定义:定义在类中具有特定功能的一段独立小程序。也称为方法

特殊情况:方法没有具体的返回值,这时return后面直接用分号结束。返回值该怎么体现?因为没有具体值,所以不可以写具体的数据类型。在java中只能用一个关键字来表示这种情况。关键字是:void。

总结:没有具体返回值的时候,返回值类型用void来表示,如果返回值类型是void则方法体中可以不写return。

注意:不可以在方法内部定义方法。定义方法时,该方法的结果应该返回给调用者,交给调用者处理

方法两个需明确的地方。1.这个功能的结果是什么?2.这个功能实现过程中是否需要未知内容参与运算?

8.数组

同一类型数据的集合

元素类型[] 数组名 = new 元素类型[元素个数或数组长度];


内存的划分:

1.寄存器 

2.本地方法区 

3.方法区 

4.栈内存:存储局部变量。而且变量所属的作用域一旦结束,该变量就自动结束

5.堆内存:存储是数组和对象(其实数组就是对象),凡是new都建立在堆中。

1.每一个实体都有首地址值

2.每一个变量都有默认初始化值,根据类型的不同而不同。整数是0。小数是0.0或者0.0f。boolean是false。char是'\u0000'

3.垃圾回收机制


各种高级语言都有这些东西,只不过表现形式不同。所要掌握的是1.高级语言的表现形式(固定的)2.何时使用此语法(编程思想)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值