Java基础/新手入门 Day02

标识符

程序中 对类,方法,变量名的字符序列

程序中可以自己命名的字符序列

语法强制要求:
1)大小写字母,数字,下划线,$;

2)数字不能开头;

3)不可以使用关键字,保留字;

4)不能有空格,区分大小写

人为约定规范 约定大于配置

1)类名首字母大写,变量名,方法名首字母小写Person person = new Person();

2)见名知意

3)驼峰表示 userName 下划线 user_name

4)常量名全部大写 USER_COUNT

5)包名全部小写

Java变量

程序中最基本的存储单元,运行中值可变.

本质上指向内存中一块空间,使用前必须先声明(申请),使用前必须赋值.

声明语法:

[修饰符] 数据类型 变量名 [=值]

Java数据类型

java语言是一种强类型语言,所有数据必须指定类型,指导jvm运行时如何分配内存空间.

基本数据类型

​ java提供8种基本类型,便于操作 直接使用关键字声明,结构简单.

int a = 10;

引用数据类型

​ 除了8种基本类型以外都是引用类型. 类作为类型可以看做是复合类型,结构复杂.

​ 类,接口(interface),数组

​ String s = “abc”; cahr[]={a,b,c}

基本数据类型

数值型

整数

byte 1

short 2

int 4

long 8

浮点

float 4

double 8

布尔型

true false

字符型

char 2字节 单个字符

编码表

ASCII GBK Unicode(底层计算机存储) utf-8(文件中存储,网络传输时) 一个英语占1字节 中文占3字节

char 可以参与算数运算

基本数据类型转换

java的8种基本数据类型,除了布尔型外,其余7种之间可以相互转换.

默认转换:

​ 容量小的 转向 容量大的 可以直接转换 因为大容量完全可以装得下小容量
​ byte,short,char < int < long < float <double
​ (byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型)

public static void main(String[] args) {
     byte b = 127;
         int i = b;
         long a = i;
         float f = a;
         double d = f;
    }

强制类型转换:

容量大的 转向 容量小的
强制类型转换问题:
1.溢出 装不下
2.精度降低

public static void main(String[] args) {
          int x = 258;
          byte y = (byte)x;
          float z = 10.5f;
          int  n = (int)z;
        System.out.println(y);
        System.out.println(n);

//注意混合运算时,小容量会自动转为大容量计算
public static void main(String[] args) {
int m = (int)z+x+y;
        int m1 = (int)(z+x+y);
        char c = 'a'-32;//   int --默认转为-> char  byte  short
        System.out.println(c);
    }

运算符

算术运算符

算术运算符:+,-,*,/,%,++,–

"+"的三个含义:+ 表示一个正数;加法;字符串相加

public static void main(String[] args) {
        /*
                -,*,/,% 只能进行算数运算 数值与数值(char)
         */
         int a = +5;
         String b = "abc";
         String b1 = "abc";
         int c = 10;
         System.out.println(a+b);//字符串+数值(char)
         System.out.println(b+b1);//字符串+字符串
         System.out.println(a+c);

         System.out.println(a-'x');
         System.out.println(a-c);

         /*
           ++
           --
          */
        int x = 5;
            //x++; // x=x+1
            //++x; // x=x+1

        //int y = x++ +2; //x++ 先把x的值赋值给y,在加1
        int y = ++x + 2; //++x 先加1后赋值
        System.out.println(x);//6
        System.out.println(y);//8
    }

比较运算符

" == " " != " " > " " < " " >= " " <= "
" == " " !=" 数值与数值(char) 布尔与布尔 引用类型 与 引用类型

        >  <  >=  <= 数值与数值(char)
public static void main(String[] args) {

        int a=10;
        int b=5;
        System.out.println(a==b);
        System.out.println(a!=b);

        boolean c = true;
        boolean c1 = false;
        System.out.println(c==c1);
        System.out.println(c!=c1);

        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1==s2);
        System.out.println(s1!=s2);

        System.out.println(a>b);
        System.out.println(a>'c');
        System.out.println(a>='c');
        System.out.println(a<='c');
    }

逻辑运算符

逻辑值与逻辑值之间的运算
&—逻辑与 | —逻辑或 ^ —逻辑异或 (还可以参与位运算 数值与数值)
&& —短路与 || —短路或 !—逻辑非

 public static void main(String[] args) {


        int a = 10;
        int b = 5;
        int c = 3;

        /*
          &逻辑与   表达式中有一个false 结果为false,都为true结果为true(有0则0)
        */
     
       /* System.out.println(a>b & b>c);//true & true  = true
          System.out.println(a<b & ++b>c);//false & true  = false
          System.out.println(b);*/
        /*true
          && 逻辑与(短路与) 表达式中有一个false 结果为false,都为true结果为true
             当遇到false  短路  后面的表达式不执行了
         */
        //System.out.println(a>b && b>c);//true && true  = true
        //System.out.println(a<b && ++b>c);//false && true  = false
        //System.out.println(b);

        //System.out.println(a>b | ++b>c);//true | true  = true

        //短路或  遇到true就短路  后面的不执行
       System.out.println(a>b || ++b<c);//true || false  = true
        System.out.println(b);

        //逻辑非  取反
        System.out.println(!true);

        //逻辑异或 相同为false  不同为true
        System.out.println(true^true);
        System.out.println(true^false);
    }

赋值运算符

符号:=

当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。
扩展赋值运算符: +=, -=, *=, /=, %=

条件运算符

语法:
(条件表达式)? 表达式1:表达式2;
为true,运算后的结果是表达式1;
为false,运算后的结果是表达式2;

表达式1和表达式2为同种类型

位运算符

<<:空位补0,被移除的高位丢弃,空缺位补0.
>>:被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1.
>>>:被移位二进制最高位无论是0或者是1,空缺位都用0.
&:二进制位进行&运算,只有1&1时结果是1,否则是0.
|:二进制位进行 | 运算,只有0|0时结果是0,否则是1.
^:相同二进制位进行 ^ 运算,结果是0;1^1=0,0^0=0.
不相同二进制位 ^ 运算结果是1.1^0=1,0^1=1.
~:正数取反,各二进制码按补码各位取反;负数取反,各二进制码按补码各位取反.

表达式的运算顺序

在这里插入图片描述

控制台输入

使用标准输入串System.in
使用Scanner取得一个字符串或一组数字
       在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以 取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转 换成布尔型。
例:  	System.out.print("输入");  	Scanner scan = new Scanner(System.in);  	String read = scan.next ();  	System.out.println("输入数据:"+read); 

        在使用Scanner对象时,需要在文件头带入 java.util.Scanner;  
        写法为: import  java.util.Scanner;

流程控制

(1)条件语句
根据不同条件,执行不同语句。

if-else语句
switch语句

package day3;
public class IFDemo {
    public static void main(String[] args) {
        /*
        if-else语句
        if条件结构是根据条件判断之后再做处理
        if ( 条件 ) {
           语句1
        }else {
           语句2
        }
         */
        int a = 70;
        if (a > 70) {
            System.out.println("成绩良好");
        } else if (a > 60) {
            System.out.println("成绩及格");
        } else
            System.out.println("成绩不及格");

        /*
        switch语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个。
        switch (表达式){
   		 case value1:  语句序列1;
 			[break];
 		  …………
   		 case valueN:  语句序列N;
			[break];
   		[default :     缺省语句;]
	    }
        表达式可以是byte、short、int、char、枚举类型。JDK 7以后,可以使用String类型
        case语句后面只能使用常量表达式;
        case后的值不能重复;
        使用break语句可以跳出switch语句
         */
        int day=0;
        switch(day){
            case 0:
                System.out.println("今天是星期天");
                break;
            case 1:
                System.out.println("今天是星期1");
                break;
            case 2:
                System.out.println("今天是星期2");
                break;
            default :
                System.out.println("日期不对");
        }
        /*
        如果判断的具体数值不多,而且符合byte、 short 、int、 char这四种类型,if-else语句
        语、与switch语句都可以使用,建议使用switch语句,因为效率稍高。
        其他情况:对区间判断,对结果为boolean类型判断,使用if语句,if语句的使用范围更广
         */
    }
}


循环语句

在某些条件满足的情况下,反复执行特定代码的功能。

循环语句由四部分组成:循环变量的初始化、循环条件部分、循环体部分、循环变量的更新。

while循环
do/while循环
for循环

package day3;

public class WhileDemo {
    public static void main(String[] args) {
        /*
        while循环  形式如下:
           while(逻辑表达式){
                 语句;
             }
         执行过程:
         先判断逻辑表达式的值。若为true,则执行其后面的语句,
         然后再次判断条件并反复执行,直到条件不成立为止。

         */
        int i=0;
        while(i<5){
            System.out.println("挣钱买摩托"+i);
            i++;
        }
        /*
        do/while循环  形式如下
            do {
            语句;
            } while(逻辑表达式);
        执行过程:先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则循环结束
         */
        int a=0;
        do{
            System.out.println("今晚吃香锅"+a);
            a++;
        }while(a<5);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值