JAVA学习笔记-JAVA基础语法-DAY02

第一章 数据类型转换

1.1 自动转换:范围小的类型向范围大的类型提升,byte、short、char运算时直接提升为int。

public static void main(string[] args){
	int i = 1;
	double d = 2.5;
	double e = d + i;
	System.out.println(e);
}

1.2 强制转换:由大转小,需强制转换。

public static void main(String[] args) {
     //short类型变量,内存中2个字节
     short s = 1;
     /*
       出现编译失败
       s和1做运算的时候,1是int类型,s会被提升为int类型
       s+1后的结果是int类型,将结果在赋值会short类型时发生错误
       short内存2个字节,int类型4个字节
       必须将int强制转成short才能完成赋值
     */
     //s = s + 1;//编译失败
     s = (short)(s+1);//编译成功
}

 1.3 ASCII编码表

public static void main(String[] args) {
  //字符类型变量
  char c = 'a';
  int i = 1;
  //字符类型和int类型计算
  System.out.println(c+i);//输出结果是98
}

第二章 运算符

2.1 算数运算符

算数运算符:含义
+加法运算,字符串连接运算
-减法运算
*乘法运算
/取模运算,两个数字相除取余数
++、--自增自减运算

 

 

 

 

 

 

 

public static void main(String[] args) {
    int a = 1;
    int b = ++a;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是2
}
public static void main(String[] args) {
    int a = 1;
    int b = a++;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是1
}

2.2 赋值运算符

赋值运算符:含义
=等于
+=加等于
-=减等于
*=乘等于
/=除等于
%=取模等

 

 

 

 

 

 

 

 

2.3 比较运算符 

比较运算符包括:含义
==比较符号两边\数据是否相等,相等结果是true
<比较符号左右的数据是否小于右边的数据,如果小于结果是true
>比较符号左右的数据是否大于右边的数据,如果大于结果是true
<=比较符号左右的数据是否小于等于右边的数据,如果小于等于结果是true
>=比较符号左右的数据是否大于等于右边的数据,如果大于等于结果是true
!=不等于符号,如果符号两边的数据不相等,结果是true

 

 

 

 

 

 

 

public static void main(String[] args) {
    System.out.println(1==1);//true
    System.out.println(1<2);//true
    System.out.println(3>4);//false
    System.out.println(3<=4);//true
    System.out.println(3>=4);//false
    System.out.println(3!=4);//true
}

 2.4 逻辑运算符

逻辑运算符包括:
&&短路与

1.两边都是true,结果是true

2.两边是false,结果是false

短路特点:符号左边是false,右边不再运算

||短路或

1.两边都是false,结果是false

2.一边是true,结果是true

短路特点:符号左边是true,右边不再运算

!取反结果取反

 

 

 

 

 

 

public static void main(String[] args)  {
    System.out.println(true && true);//true
    System.out.println(true && false);//false
    System.out.println(false && true);//false,右边不计算
 
    System.out.println(false || false);//falase
    System.out.println(false || true);//true
    System.out.println(true || false);//true,右边不计算
 
    System.out.println(!false);//true
}

 2.5 三元运算符

数据类型 变量名 = 布尔类型表达式?结果1:结果2

public static void main(String[] args) {
    int i = (1==2 ? 100 : 200);
    System.out.println(i);//200
    int j = (3<=4 ? 500 : 600);
    System.out.println(j);//500
}

第三章 方法入门

3.1 方法概述

我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且
重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。
方法: 就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。

3.2 方法的定义

修饰符 返回值类型 方法名 (参数列表){
     代码...        
    return ;     

定义格式解释:
修饰符: 目前固定写法  public static 。 

返回值类型: 目前固定写法  void ,其他返回值类型在后面的课程讲解。
方法名:为我们定义的方法起名,满足标识符的规范,用来调用方法。
参数列表: 目前无参数, 带有参数的方法在后面的课程讲解。
return :方法结束。因为返回值类型是void,方法大括号内的return可以不写。

public static void methodName() {
   System.out.println("这是一个方法");  
}

3.3 方法的调用

public static void main(String[] args) {
    //调用定义的方法method
    method();
}
//定义方法,被main方法调用
public static void method() {
   System.out.println("自己定义的方法,需要被main调用运行");  
}

3.4 调用练习

将三元运算符代码抽取到自定义的方法中,并调用。

public static void main(String[] args) {
    //调用定义的方法operator
    operator();
}
//定义方法,方法中定义三元运算符
public static void operator() {
    int i = 0;
    i = (1==2 ? 100:200);
    System.out.println(i);
    int j = 0 ;
    j = (3<=4 ? 500:600);
    System.out.println(j);
}

3.5 注意事项

方法定义注意事项:
方法必须定义在一类中方法外
方法不能定义在另一个方法的里面

public class Demo {
    public static void main(String[] args){
    }
    //正确写法,类中,main方法外面可以定义方法
    public static void method(){}
}
public class Demo {
    public static void main(String[] args){
        //错误写法,一个方法不能定义在另一方法内部
        public static void method(){}
    }
}

第四章 JShell脚本工具

JShell脚本工具是JDK9的新特性

什么时候会用到 JShell 工具呢,当我们编写的代码非常少的时候,而又不愿意编写类,main方法,也不愿意去编译和运
行,这个时候可以使用JShell工具。
启动JShell工具,在DOS命令行直接输入JShell命令。

接下来可以编写Java代码,无需写类和方法,直接写方法中的代码即可,同时无需编译和运行,直接回车即可

 小贴士:
JShell工具,只适合片段代码的测试,开发更多内容,建议编写在方法中

 第五章 扩展知识点

5.1 += 符号的扩展

下面的程序有问题吗?

public static void main(String[] args){
  short s = 1;
  s+=1;
  System.out.println(s);
}

分析:  s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围
大的类型赋值到取值范围小的类型。但是, s=s+1 进行两次运算 , += 是一个运算符,只运算一次,并带有强制转换的特点,
也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过,运行结果是2.

5.2  常量和变量的运算

下面的程序有问题吗?

public static void main(String[] args){
  byte b1=1;
  byte b2=2;
  byte b3=1 + 2;
  byte b4=b1 + b2;
  System.out.println(b3);
  System.out.println(b4);
}

分析: b3 = 1 + 2 , 1 和  2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没
有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。
反之, b4 = b2 + b3 , b2 和  b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什
么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。
在jshell中体现:

​​​​​​​

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值