Java自学笔记_基础

学习的内容来自bilibili视频还有runoob.com的java部分
本文仅作复习用,欢迎分享、转载,但是请注明出处谢谢

001_HelloWorld

1.1 HelloWorld

首先是HelloWorld.java文件的内容

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

要注意,public class xxxx 这里边的xxxx要和文件名一致。大小写一致

1.2 编译运行

在HelloWorld.java 根目录下打开PowerShell

javac HelloWorld.java

这个时候在同目录下会出现一个HelloWorld.class文件。这个时候执行

java HelloWorld 

就会出下如下,即输出Hello World

Java自学笔记_基础_第1张图片

002_变量与常量

2.1 基本数据类型

2.1.1基本数据类型

数据类型 关键字 内存占用 取值范围
字节型 byte 1个字节 -128-127
短整型 short 2个字节 -32768~32767
整形 int 4个字节 -231 ~231-1
长整型 long 8个字节 -263~263-1
单精度 float 4个字节 1.2013E-45~3.4028E+38
双精度 double 8个字节 4.9E-324~1.7977E+308
字符型 char 2个字节 0-65535
布尔 boolean 1个字节 true /false

2.1.2 引用数据类型

​ 主要有类、数组、接口

2.2 声明方法

在函数中的声明格式如下

<变量类型> <变量名>;
<变量类型> <变量名>=<初始值>;
//如下
int num;//这个变量没有初始值
int num1 = 100;//这个变量的初始值为100

//还有如下声明方式
int a,b,c,d;//声明了abcd四个整形变量
int a1=100,b1=200,c1=300;//声明了a1、b1、c1三个变量,并且赋予了初始值100、200、300

2.3 注意事项

2.3.1 作用域

在如下代码中,num1的作用范围仅在花括号内

public class demo{
    public static void main(String args[]){
        int num1 =100;
        System.out.println(num1);
        {
            int num1_1 = 200;
            System.out.println(num1_1);//输出200
            System.out.println(num1);//输出100
            
        }
        int num1_1 = 300;//重新声明num1_1 作用域(花括号)内的num1_1已经销毁
        System.out.println(num1_1);//输出300
    }
}

003_数据类型转换(这部分比较简单,后续有空再写上

3.1自动类型转换

3.2 强制类型转换

3.3 注意事项

004_运算符

4.1 算数运算符

算数运算符符号 作用
+ 加法运算,还用做字符串连接
- 减法运算
* 乘法运算
/ 除法运算
% 取模运算(取余数
++/– 自增自减运算

在变量类型不同的算术运算中,结果将去范围大的数

4.1.1 加减乘除的使用

public class demo{
    public static void main(String[] args){
        int a =1;
        System.out.println(a+1);//输出2
        System.out.println(a-1);//输出0
        System.out.println(a*1);//输出1
        System.out.println(a/1);//输出1
    }
}

4.1.2 取模运算的使用

public class demo{
    public static void main(String[] args){
        System.out.println(100%3);//输出1  
        //100/3=33.....1  
        //被除数/除数=商......余数
        //取模运算就是取余数
    }
}

4.1.3 加号用于字符串连接

public class demo{
    public static void main(String[] args){
        System.out.println("Hello");//输出->Hello
        System.out.println("Hello"+"World!");//输出->HelloWorld
        System.out.println("Hello"+20+30);//输出->Hello2030
        //任何类型在和String类型使用+连接的时候都会变成字符串
        System.out.println("Hello"+(20+30));//输出->Hello50
        //上面这条输出涉及到运算符优先级的问题
    }
}

任何类型在和String类型使用+连接的时候都会变成字符串

4.1.4 自增自减运算符

一般与变量一同使用。例如++a、a++、–a、a–

自增自减运算符在变量的前后代表着他是什么时候使用的。

以自增运算符为例,b = ++a可以看做一个变量,b即等于a+1.自增运算符在使用++a之前即生效。(先加后用)

而b = a++则是b先给a 的值,然后a再实现 a=a+1 (先用后加)

具体的实现看下面的例子

public class demo{
    public static void main(String[] args){
        int a=0;
        System.out.println(a++);//输出->0在自增过后,此时a=1
        System.out.println(a);//输出->1
        System.out.println(++a);//输出->2
		System.out.println(a);//输出->2
        System.out.println(--a);//输出->1
        System.out.println(a);//输出->1
        System.out.println(a--);//输出->1
        System.out.println(a);//输出->0
    }
}

4.2 赋值运算符

赋值运算符 作用
= 等于
+= 加等于,a+=1实际上为a=a+1
-= 减等于,a-=1实际上为a=a-1
/= 除等于,a/=1实际上为a=a/1
*= 乘等于,a * =1实际上为a=a * 1
%= 取模等于,a%=1实际上为a=a%1

4.3 比较运算符

比较运算符
== 等于
< 小于
> 大于
<= 小于等于
>= 大于等于
!= 不等于

当表达式满足比较运算符的时候,表达式的值为true。若不满足,则表达式的值为false

要特别注意,=为赋值号。==才是比较是否相等的符号

4.4 逻辑运算符

逻辑运算符 符号
&&
||

逻辑运算符主要是运用在boolean(布尔)运算中的

且在逻辑运算中要注意短路效应

例如

<表达式1>&&<表达式b> 当表达式1false时,将不会执行或者是验证表达式2
<表达式1>||<表达式b> 当表达式1true时,将不会执行或者是验证表达式2

4.5 三元运算符

三元运算符的字符表达为:

<条件判断> ? <表达式1>:<表达式2>;

当条件判断为true时,整个三元运算符的值为表达式1.条件判断为false时,整个三元运算符的值为表达式2.

public class demo{
    public static void main(String[] args){
        boolean p;
        p = 1>3  ?   true : false;//此时1不大于3,条件判断不成立,输出false给p
        System.out.println(p);//输出p->false

    }
}

005_Function(函数、方法)

Function 方法、函数 主流的两种叫法

    public static void main(String[] args){
		//在这里写上代码
        return ;	
    }

在上面的代码中 public 和static 是函数的修饰符

void代表返回值的类型,void表示不返回值,即return ; 可以不写。

void可以用int 、double、String等数据类型来替代,这取决于你想要返回的值。

函数这部分很简单,懒得详细写

006_流程控制

6.1 顺序结构

顺序结构就是按照代码的顺序从第一行依次读取到最后一行

这个只是提一下

6.2 判断语句

6.2.1 最基础的判断语句-单if

格式如下。

if(布尔表达式)
{
   //如果布尔表达式为true将执行的语句
}

下面给一个单if的示例

//Test.java
public class Test {
 
   public static void main(String args[]){
      int x = 10;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }
   }
}

6.2.2 if…else语句

//结构如下
if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}

代码示例:

//Test.java
public class Test {
 
   public static void main(String args[]){
      int x = 30;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}

6.2.3 if…else if…else 语句

语法

if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}

代码示例:

//Test.java
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 语句");
      }
   }
}

输出结果
Value of X is 30

6.2.4 嵌套if…else语句

语法

if(布尔表达式 1){
   ////如果布尔表达式 1的值为true执行代码
   if(布尔表达式 2){
      ////如果布尔表达式 2的值为true执行代码
   }
}

代码示例:

//Test.java
public class Test {
 
   public static void main(String args[]){
      int x = 30;
      int y = 10;
 
      if( x == 30 ){
         if( y == 10 ){
             System.out.print("X = 30 and Y = 10");
          }
       }
    }
}

运行结果如下

X = 30 and Y = 10

6.3 选择语句

6.3.1 switch介绍

switch case 语句有如下规则:

  • switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
  • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
  • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
  • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

6.3.2 实例演示

注意点:

1.case后面的数值不能重复

2.switch后面的括号内的值只能是byte/short/char/int/String/enmu

语法:

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

程序实例

//Test.java
public class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
 
      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);
   }
}

如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。

如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句则会跳出判断。

6.4 循环结构

6.4.1 while循环

语法:

while( 布尔表达式 ) {
  //循环内容
}

代码示例:

public class Test {
   public static void main(String args[]) {
      int x = 10;
      while( x < 20 ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }
   }
}

输出结果
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

6.4.2 do…while循环

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

语法:

do {
       //代码语句
}while(布尔表达式);

代码示例:

public class Test {
   public static void main(String args[]){
      int x = 10;
 
      do{
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }while( x < 20 );
   }
}

输出结果

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

6.4.3 for循环

虽然所有循环结构都可以用 while 或者 do…while表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

for循环执行的次数是在执行前就确定的。

关于 for 循环有以下几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  • 然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次检测布尔表达式。循环执行上面的过程。

语法:

for(初始化; 布尔表达式; 更新) {
    //代码语句
}

代码示例:

public class Test {
   public static void main(String args[]) {
 
      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

输出结果

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

6.4.4 增强for循环

Java5 引入了一种主要用于数组的增强型 for 循环。

Java 增强 for 循环语法格式如下:

语法:

for(声明语句 : 表达式)
{
   //代码句子
}

**声明语句:**声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

**表达式:**表达式是要访问的数组名,或者是返回值为数组的方法。

代码示例:

public class Test {
   public static void main(String args[]){
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ){
         System.out.print( x );
         System.out.print(",");
      }
      System.out.print("\n");
      String [] names ={"James", "Larry", "Tom", "Lacy"};
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }
   }
}

输出结果

10,20,30,40,50,
James,Larry,Tom,Lacy,

6.5 拓展知识点

6.5.1 break

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

语法:

break;

代码示例:

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         // x 等于 30 时跳出循环
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

输出结果

10
20

6.5.2 continue

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

语法:

continue;

代码示例:

public class Test {
   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ) {
         if( x == 30 ) {
        continue;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

输出结果

10
20
40
50

6.5.3 三种循环的区别

在6.4中,提到了三种循环结构

1.单while循环

2.do…while循环

3.for循环

1、在这三种循环之中,do…while循环是先执行一次内容,然后再校验是否符合条件。

2、for循环中小括号内定义的变量只有在循环中可以使用。


后面部分的笔记还没完成

007_方法的重载

008_数组

009_面向对象和封装

010_常用API

011_集成与多态

012_集合

013_异常与多线程

014_File类与IO流

015_网络编程

016_MYSQL

017_JDBC

你可能感兴趣的:(Java,java,自学)