Java0531-node

Java0531-node

1 Java基础

1.1 输出

System.out.println();

public class Test1{
	public static void  main(String[] args){
		System.out.println("hello world!!!");
		System.out.println();//空行
		//System.out.print();错误,不能这样既不输出也不换行
	}
}

转义字符

  • "——>\ "
  • \——>\ \(一个\)
  • Tab——>\t(水平制表符,一个tab的距离)
  • 换行——>\n(换行)
System.out.println("你好\\");//输出:你好\
System.out.println("你好\"");//输出:你好"
System.out.println("你好\t你好");//输出:你好	你好
System.out.println("你好\n你好");//输出:你好
								    // 你好

1.2 代码注释

解释代码,方便程序员解读代码
不影响程序执行效率

分类

  1. 单行注释://,用在行末或代码前
  2. 多行注释:/* */
  3. 文档注释:/** */,DOS命令:javadoc -d doc Test.java;生产doc文件夹,找里面的index.html

2 变量

2.1 变量

变量:内存中的一块空间,空间中存储的值可以发生变化

变量三要素

  1. 变量值:空间里存储的数据
  2. 变量类型:存储的数据的类型,决定分配空间的大小
  3. 变量名:存储空间的别名,快速找到或取出空间里的数据

2.2 数据类型

数据类型

  • 基本数据类型
    1. 数值型
      整数
      int:4个字节,32位,范围[(-231)~(231-1)] = [-2,147,483,648~2,147,483,647]
      byte:1个字节
      short:2个字节
      long:8个字节
      浮点数
      float:4个字节
      double:8个字节
    1. 字符型
      char:存储单个字符,2个字节,用单引号引出(例:‘eye’)
      字符0——>48;A——>65;a——>97
    1. 布尔类型
      boolean:TRUE:真;FALSE:假
  • 引用数据类型
    1. 字符串类型
      String:存储0~多个字符,用双引号引出(例:“Hello World!”)

2.3 数据类型转换

数据类型转换

  1. 隐式转换:自动转换
    条件:数据类型要兼容(byte、char、short、int、long、float、double)且要小转大
  2. 强制类型转换:(目标数据类型) 变量;
    条件:数据类型要兼容(byte、char、short、int、long、float、double)且要大转小,
    复合赋值运算符,会自动进行强制类型转换
    (short s2 =1;s2 = s2 + 1;报错)
    (short s2 = 1;s2 += 1;不报错)

2.4 变量名

变量名
命名规范:

  1. 只能使用$,字母,数字,_,不能以数字开头
  2. 不能使用关键字,如:public,class,static,void,String等
  3. 建议:命名要见名知意
  4. 驼峰法(Camel命名法):例:StudentAge
  5. 区分大小写

2.5 变量的使用

变量的使用

  1. 申请空间:数据类型 变量名; 例:int money;
  2. 存储数据:变量名 = 数据; 例:money = 10;
    可以合成一步:数据类型 变量名 = 数据; 例:int money = 10;
  3. 使用变量:例:Syetem.out.println(money);

public class Mp3Num{
	public static void main(String[] args){
		
		String name = "漫步者";
		double price;
		price = 299.9;
		char color = '白';
		int inventory;
		inventory = 100;
		boolean IsStarter = false;
		
		System.out.println("品牌:"+name);
		System.out.println("价格:"+price);
		System.out.println("颜色:"+color);
		System.out.println("库存:"+inventory);
		System.out.println("是否首发:"+IsStarter);
	}
}

结果
D:\java\code\0531>java Mp3Num
品牌:漫步者
价格:299.9
颜色:白
库存:100
是否首发:false

3 常量

3.1 概念

常量:内存里的一块空间,且数据不能改变

3.2 使用方法

final 数据类型 变量名 = 值;

命名规则:全部用大写,单词之间用下划线做分隔

字面常量:例:1、“a”、false等

默认数据类型

  • 整数的默认类型为int,超过范围的赋值给long,需要在数值末尾加l/L
  • 小数的默认类型为double,给float类型赋值,需要在数值末尾加f/F

使用场景:

  • 固定不变的量,建议使用常量。例:PI(π)、WEEK_DAY
  • 特殊的含义

4 运算符

4.1 赋值运算符

变量名 = 表达式;:从右往左赋值

从键盘输入数据

  1. 导包 import java.util.Scanner;
  2. 初始化scanner Scanner name = new Scanner(System.in);
  3. 接受一个int类型的数据 int c = name.nextInt();
    接受一个double类型的数据 double d = name.nextDouble();
    接收一个String类型的数据 String c = name.next();
//导包
import java.util.Scanner;
public class StuInfor{
	public static void main(String[] args){
		//初始化scanner
		Scanner input = new Scanner(System.in);
		//int型
		int a = input.nextInt();
		System.out.println("你输入了一个:"+a);
		//double型
		double b = input.nextDouble();
		System.out.println("你输入了一个:"+b);
		//String型
		String c = input.next();
		System.out.println("你输入了一个:"+c);
	}
}

复合赋值运算符
+=、-=、*=、/=、%=

4.2 算术运算符

+ - * / %
3/2

拆分整数

public class SplitNum{
	public static void main(String[] args){
		//两位数
		int num = 25;
		int decade = num/10;
		int unit = num%10;
		System.out.println("十位数字为:"+decade);
		System.out.println("个位数字为:"+unit);
		
		//三位数
		int num1 = 259;
		int hundred1 = num1/100;
		//int decade1 = (num1/10)%10;
		int decade1 = (num1%100)/10;
		int unit1 = num1%10;
		System.out.println("百位数字为:"+hundred1);
		System.out.println("十位数字为:"+decade1);
		System.out.println("个位数字为:"+unit1);
		
		//四位数
		int num2 = 1259;
		int thousand2 = num2/1000;
		int hundred2 = (num2%1000)/100;
		int decade2 = ((num2%1000)%100)/10;
		int unit2 = num2%10;
		System.out.println("千位数字为:"+thousand2);
		System.out.println("百位数字为:"+hundred2);
		System.out.println("十位数字为:"+decade2);
		System.out.println("个位数字为:"+unit2);
	}
}

其他方法

单目运算符

  • ++:自增1(a++、++a)(++在后,先用再加;++在前,先加再用)
  • –:自减1(a–、–a)
public class Test1{
	public static void main(String[] args){
		
		int a = 6;
		System.out.println(a++);//6
		System.out.println(++a);//8
		
		int a1 = 6;
		System.out.println(++a1);//7
		
		int a2 = 6;
		a2 = a2++;
		System.out.println(a2);//6
		
		int a3 = 6;
		a2 = ++a2;
		System.out.println(a2);//7

		int b = 4;
		int c = b++;
		System.out.println(b);//5
		System.out.println(c);//4
		
		int b1 = 4;
		int c1 = ++b1;
		System.out.println(b1);//5
		System.out.println(c1);//5
		
		
	}
}

4.3 关系运算符

> 、< 、>=、 <=、==、!=
关系表达式的结果是boolean类型,TRUE/FALSE

import java.util.Scanner;
public class Test2{
	public static void main(String[] args){
		int num1 = 23;
		int num2 = 23;
		boolean flag = num1==num2;
		System.out.println(flag);//true

		//double 有有效范围,不建议使用double判断相等
		double d1 = 1.0;
		double d2 = 1.0000000000000000000123;
		System.out.println(d1==d2);//true
		
		//String类型的数值比较,==比较的是字符串的地址,因为有常量池的存在,此处返回true
		String str1 = "abc";
		String str2 = "abc";
		System.out.println(str1==str2);//true
		
		//此处==返回的是false,故String类型的比较,不要用==
		Scanner input = new Scanner(System.in);
		String str3 = input.next();
		System.out.println(str1==str3);//false
		
		//String类型的比较,建议使用equals()方法
		boolean flag1 = str1.equals(str3);
		System.out.println(flag1);//true
		
		//char类型是按照数值来存的
		char c ='a';
		char d = 'A';
		System.out.println(c<d);
	}
}

4.4 逻辑运算符

链接多个条件/多个关系表达式

  • &&:逻辑与 条件1 && 条件2; 两个条件同时成立才为true(同真则真,有假则假)
  • ||:逻辑或 条件1 || 条件2; 两个条件有一个成立就为true(有真则真,同假则假)

特点:支持短路(优先级高的建议放在条件一,会简化判断流程,提高速度)

  • !:取反
public class Test3{
	public static void main(String[] args){
		//短路
		int num1 = 15;
		int num2 = 1;
		//&&:条件一不成立
		boolean flag3 = (num1<10)&&(num2++<3);
		System.out.println(flag3);//false
		System.out.println(num2);//1 条件一不成立,跳过第二个条件
		//&&:条件一成立
		boolean flag4 = (num1>10)&&(num2++<3);
		System.out.println(flag4);//false
		System.out.println(num2);//2 条件一成立,执行第二个条件
		//||:条件一成立
		boolean flag5 = (num1>10)&&(num2++<3);
		System.out.println(flag5);//true
		System.out.println(num2);//1 条件一成立,跳过第二个条件
		//||:条件一不成立
		boolean flag6 = (num1<10)&&(num2++<3);
		System.out.println(flag6);//false
		System.out.println(num2);//2 条件一不成立,执行第二个条件
		
		//!
		boolean flag7 = !flag6;
		System.out.println(flag7);//true
	}
}

4.5 位运算符

  1. 低位补0,高位溢出
    <<:左移(0101<<1——>1010)——>(5<<1—>10)
int a = 5;
int b = 5<<1;//相当于乘2
System.out.println(b);//10
  1. 高位补0,低位溢出
    >>:右移(0101>>1——>0010)——>(5>>1—>2)
 int a = 5;
  int b = 5>>1;//相当于除2
  System.out.println(b);//2
  1. 同1则1,遇0则0
    &:按位与(位运算)
int a = 5;
int b = 13;
int c = a & b;//00000101(5)与00001101(13)按位与——>00000101(5)
System.out.println(c);//5

可以进行逻辑运算,但与&&相比,&不支持短路

int x = 5;
int y = 13;
boolean flag = (x<6)&(y>12);
System.out.println(flag);//true
boolean flag1 = (x>6)&(y++>12);//位运算结果为数值,逻辑运算结果为true或false
System.out.println(flag1);//false
System.out.println(y);//14(不支持短路,条件1不成立时,会执行条件2)

可以判断奇偶数:与1&运算,为1是奇,为0是偶

int x = 5;
boolean flag = (x & 1)==0;
int y = x & 1;
//00000101(5)与00000001(1)按位与——>00000001(奇)如果为00000100(4)与00000001(1)按位与——>00000000(偶)
System.out.println(flag);//false
System.out.println(y);//1
  1. 有1则1,同0则0
    |:按位或
    可以进行逻辑运算,但与||相比,|不支持短路
    取一个数最近的偶数:与1|运算,将最末位置1,然后-1,即可
    00000101(5)与00000001(1)按位或——>00000101(5)-1=4
  1. 不同为1,相同为0
    ^:异或
    对同一个数字异或2次,可以获得原数字(5^13^13——>5)或(5^13^5——>13)
    00000101(5)与00001101(13)按位异或——>00001000(8)加密
    00001000(8)与00001101(13)按位异或——>00000101(5)解密

4.6 优先级

先进行运算,在比较,然后连接,最后赋值
()优先级最高

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值