java基础语法学习

java学习笔记

图灵完备:所有的通用编程语言和现代计算机的指令集都是图灵完备的语言,有循环执行语句,判断分支语句等。
如果是图灵完备的,它(计算机设备)有能力执行条件跳转(if、while、goto语句)以及改变内存数据。



前言

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。

  • 对象(object):对象是类的一个实例,有状态和行为。
  • 类(class):类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

一、java数据类型

1.基本数据

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

  1. byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数;最小值是-128,最大值是127, byte 变量占用的空间只有 int 类型的四分之一。例子:
byte a = 100;
byte b = -50;
  1. short:short 数据类型是 16 位、有符号的以二进制补码表示的整数,最小值是-32768,最大值是32767,一个short变量是int型变量所占空间的二分之一,例子:
short s = 1000;
short r = -20000;
  1. int:int 数据类型是32位、有符号的以二进制补码表示的整数,例子:
int a = 100000;
int b = -200000;
  1. long:long 数据类型是 64 位、有符号的以二进制补码表示的整数,x例子:
long a = 100000L;
long b = -200000L;
  1. float:float 数据类型是单精度、32位、符合IEEE 754标准的浮点数,默认值是 0.0f;例子:
float a=23.3f;
  1. double:double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;例子:
double d=123.67
  1. boolean:只有两个取值:true 和 false;
boolean result1=true;
boolean result2=false;
  1. char:char 数据类型可以储存任何字符;
char ch='a';

2.引用数据类型

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用任何与之兼容的类型。

3.常量

常量在程序运行时是不能被修改的。

在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:

final double PI = 3.1415927;
  1. 自动类型转换:整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级:byte,short,char—> int —> long—> float —> double

  2. 强制类型转换

  3. 条件是转换的数据类型必须是兼容的。

  4. 格式:(type)value type是要强制类型转换后的数据类型 实例:

int i1=23;
byte b=(byte)i1;
double d1=35.2
int i2=(int)d1;

4.数组

  1. 声明数组
double[] myList;         // 首选的方法double myList[];         //  效果相同,但不是首选方法
  1. 创建数组
dataType[] arrayRefVar = new dataType[arraySize];
或
dataType[] arrayRefVar = {value0, value1, ..., valuek};
  1. 处理数组
    数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 For-Each 循环。
double[] myList = {1.9, 2.9, 3.4, 3.5};
      // 打印所有数组元素
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
      // 计算所有元素的总和
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      // 查找最大元素
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);
  1. For-Each 循环
    JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。
    语法格式如下:
for(type element: array)
{
    System.out.println(element);
}

二.循环结构

1.主要循环结构

Java中有三种主要的循环结构:

  1. while 循环
  2. do…while 循环
  3. for 循环

2.两个关键字

java循环结构中的两个关键字:

  1. break 跳出最里层的循环,并且继续执行该循环下面的语句。
  2. continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

3.条件语句

  1. if…else语句
    if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。
public class Test {
   public static void main(String args[]){
      int x = 30;
 
      if( x == 10 ){
         System.out.print("Value of X is 10");
      }else if( x == 20 ){
         System.out.print("Value of X is 20");
      }else if( x == 30 ){
         System.out.print("Value of X is 30");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}
  1. switch case语句
    switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
 switch(grade)
      {
         case 'A' :
            System.out.println("优秀"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("良好");
            break;
         case 'D' :
            System.out.println("及格");
            break;
         case 'F' :
            System.out.println("你需要再努力努力");
            break;
         default :
            System.out.println("未知等级");
      }
      System.out.println("你的等级是 " + grade);

三.常用的类

1.Number & Math 类

  1. xxxValue()
    将 Number 对象转换为xxx数据类型的值并返回
  2. compareTo()
    将number对象与参数比较。
  3. equals()
    判断number对象是否与参数相等。
  4. valueOf()
    返回一个 Number 对象指定的内置数据类型
  5. toString()
    以字符串形式返回值。
  6. parseInt()
    将字符串解析为int类型。
  7. abs()
    返回参数的绝对值。
  8. ceil()
    返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型。
  9. max()
    返回两个参数中的最大值。
  10. min()
    返回两个参数中的最小值
  11. pow()
    返回第一个参数的第二个参数次方。
  12. sqrt()
    求参数的算术平方根。
  13. random()
    返回一个随机数。

floor,round 和 ceil 实例:

public class Main {   
  public static void main(String[] args) {   
    double[] nums = { 1.4, 1.5, 1.6, -1.4, -1.5, -1.6 };   
    for (double num : nums) {   
      test(num);   
    }   
  }   
  
  private static void test(double num) {   
    System.out.println("Math.floor(" + num + ")=" + Math.floor(num));   
    System.out.println("Math.round(" + num + ")=" + Math.round(num));   
    System.out.println("Math.ceil(" + num + ")=" + Math.ceil(num));   
  }   
}

2.String 类

  1. char charAt(int index)
    返回指定索引处的 char 值
  2. boolean equals(Object anObject)
    将此字符串与指定的对象比较。
  3. String concat(String str)
    将指定字符串连接到此字符串的结尾。
  4. int compareTo(String anotherString)
    按字典顺序比较两个字符串。
  5. int indexOf(int ch)
    返回指定字符在此字符串中第一次出现处的索引。
  6. int indexOf(String str)
    返回指定子字符串在此字符串中第一次出现处的索引。
  7. int length()
    返回此字符串的长度。
  8. String substring(int beginIndex)
    返回一个新的字符串,它是此字符串的一个子字符串
  9. isEmpty()
    判断字符串是否为空。
  10. contains(CharSequence chars)
    判断是否包含指定的字符系列。
  11. String toUpperCase()
    使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
  12. String toLowerCase()
    使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
  13. char[] toCharArray()
    将此字符串转换为一个新的字符数组。

3.StringBuffer 类

  1. public StringBuffer append(String s)
    将指定的字符串追加到此字符序列。

  2. public StringBuffer reverse()
    将此字符序列用其反转形式取代。

  3. public delete(int start, int end)
    移除此序列的子字符串中的字符。

  4. public insert(int offset, int i)
    将 int 参数的字符串表示形式插入此序列中。

  5. replace(int start, int end, String str)
    使用给定 String 中的字符替换此序列的子字符串中的字符。

4.Scanner 类

  1. java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
    例子:
import java.util.Scanner; 

public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);        
        // next方式接收字符串
        System.out.println("next方式接收:");
        // 判断是否还有输入
        if (scan.hasNext()) {
            String str1 = scan.next();
            System.out.println("输入的数据为:" + str1);
        }
        scan.close();
    }
}
  1. next() 与 nextLine() 区别
  • next():
    1、一定要读取到有效字符后才可以结束输入。
    2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
    3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
    4、next() 不能得到带有空格的字符串。
  • nextLine():
    1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
    2、可以获得空白。

总结

以上是总结了java常用的基础语法,还有许多语法需要进一步学习,最后用一道题目来练习java的语法,题目与解析可查看如下博客:
java与水仙花数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值