javase基础教程(1)| 青训营笔记

简介: javase基础教程(1)| 青训营笔记

1.2 相关软件安装


IDEA: 官网下载 IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains

JDK:官网下载 Java Downloads | Oracle

这两个工具下载完毕后开始配置环境变量,具体参见这个视频 java环境变量的配置哔哩哔哩bilibili


1.3 基本语法


1.3.1 第一个程序 HelloWorld


public class demo1 {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}
复制代码

注:main方法即程序入口

运行结果如下

1670049929877.jpg


1.3.2 单行注释与多行注释


java中注释类型 单行注释、多行注释、文档注释

单行注释和多行注释的作用

  1. 对程序进行解释说明,增强可读性,方便自己,方便别人
  2. 调试所写的代码
  3. 注释了的内容不参与编译,换句话说,编译以后生成的.class结尾的文件不包含注释掉的信息
  4. 文档注释的使用:注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档
  5. 多行注释不可以嵌套使用(如下所示)

1670049942721.jpg

1.3.3 第一个程序的总结


  1. 在一个java源文件中可以声明多个class,但是,只能最多有一个类声明为public而且要求声明为public的类的雷鸣必须与源文件名相同
  2. 程序的入口是main()方法,格式是固定的
  3. 输出语句 System.out.println(换行)System.out.print()(不换行)
  4. 每一句执行语句都以“ ;”结束

1.3.4 java关键字和保留字


1670049959784.jpg

1670049968670.jpg


1.3.5 标识符的命名与规则


1.3.6 标识符


java对各种变量、方法和类等要素命名时使用的字符序列称为标识符

技巧:凡是可以自己起名字的地方都叫标识符


1.3.7 定义合法标识符规则


  1. 由26个英文字母大小写,0-9,_或$组成
  2. 数字不可以开头
  3. 不可以使用关键字或保留字,但能包含关键字和保留字
  4. java中严格区分大小写,长度无限制
  5. 标识符不能包含空格


1.3.8 定义合法标识符(练习)


1670050001596.jpg

1.3.9 Java中的名称命名规范


  1. 包名:多单词组成时所有字母都小写:xxxyyyzzz
  2. 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  3. 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
  4. 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ


1.3.10 变量


1.3.10.1 变量的概念


  1. 内存中的一个存储区域
  2. 该区域的数据可以在同一类型范围内不断变化
  3. 变量是程序中最基本的存储单元


1.3.10.2 变量的作用


用于在内存中保存数据


1.3.10.3 使用变量注意


  1. Java中每个变量必须先声明,后使用
public class Test {
    public static void main(String[] arg1s) {
        int myAge = 12;
        System.out.println(myAge);
    }
}
  1. 使用变量名来访问这块区域的数据
  2. 变量的作用于:其定义所在的一对{}内
  3. 变量只有在其作用域内才生效
  4. 同一个作用于,不能定义重名的变量
public class Test {
    public static void main(String[] arg1s) {
        int myAge = 12;
        int myAge = 12;   //编译报错
        System.out.println(myAge);
    }
}


1.3.11 Java定义的数据类型


1.3.11.1 基本数据类型


数值类型:byte short long int

浮点类型:float double

字符型:char

布尔型:boolean

1.3.11.2 引用数据类型

(字符串属于引用数据类型)

类:class 接口:interface 数组:[ ]

1.9.3 整数类型

  1. Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性
  2. Java的整形常量默认为int型,声明long型常量须后加“L”或“l”

1670050104033.jpg

1.3.12 变量在类中声明的位置


  1. byte范围:-128~127
public class Test {
    public static void main(String[] arg1s) {
        byte b1 = 128;    //编译报错
        byte b2 = -127;
        byte b3 = 127;
    }
}

b3变量编译不通过

1.3.12.1 浮点类型

  1. 与整数类型相似,Java浮点类型也有固定的表述范围和字段长度,不受具体操作系统的影响
  2. 浮点型常量有两种表示方式

(1)十进制数形式,如:5.12 512.0f .512(必须有小数点)

(2)科学计数法形式表示,如:5.12e2 512E2 100E-2

float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足要求

double:双精度,精度是float的两倍。通常采用此类型

Java浮点型常量默认为double型,声明为float型常量,须后加“f”或“F”

1670050128859.jpg

public class Test {
    public static void main(String[] arg1s) {
        float f1 = 12.4;    //编译报错
        System.out.println(f1);
    }
}

(未以“f”或者“F”结尾)

1.3.12.2 字符型:char

①定义char型变量,通常使用 ‘ ’,内部只能写一个字符

public class Test {
    public static void main(String[] arg1s) {
      char b1 = 'a';
      char b2 = 'ab';    //编译报错
    }
}

1.3.12.3 布尔类型:Boolean

  1. 只能取true和false其中一种
public class Test {
    public static void main(String[] arg1s) {
  boolean b1 = true;
  boolean b2 = false;
    }
}

实例如下

public class Test {
    public static void main(String[] arg1s) {
        boolean isMarried = true;
        if (isMarried) {
            System.out.println("不可以参加");
        } else {
            System.out.println("可以参加");
        }
    }
}


1.3.13 基本数据类型之间的运算规则


1.3.13.1 自动类型提升

byte → short → int → long → float → double

public class Test {
    public static void main(String[] arg1s) {
byte b1 = 2 ;
int i1 = 129 ;
byte b2 = b1 + i1 ;    //编译报错
int i2  = b1 + i1 ;
long l1 = b1 + i1;
System.out.println(i2);  //131
float f = b1 + i1;
System.out.println(f);   //131.0
short s1 = 123;
double d1 = s1;
System.out.println(d1);  //123.0
    }
}

1.3.13.2 强制类型转换

(说明:此时容量大小指的是:数的范围的大和小)

public class Test {
    public static void main(String[] arg1s) {
        char c1 = 'a';
        int i3 = 10;
        int i4 = c1 + i3;
        System.out.println(i4);    //107
        short s3 = c1+ s2 ;  //编译报错
        byte b2 = 10 ;
        char c3 = c1 + b2 ;  //编译报错
    }
}

当byte、char、short三种类型的变量做运算时,结果为int型


1.3.13.3 强制类型转换注意事项


(1)需要使用强转符

(2)强制类型转换,可能导致精度损失


1.3.14 String与8种基本数据类型间的运算


(1)String属于引用数据类型,即为字符串

(2)声明String类型变量时,使用一对 " "

(3)String可以和8种基本数据类型变量做运算,且运算只能是连接运算

(4)运算的结果仍然是String类型

String s = 34234;    //编译错误
String s1 = "23434";
int i = (int)s1;    //编译错误


1.3.15 进制


1.3.15.1 二进制


只有0和1用来表示二进制,满2进1,以0b0B开头


1.3.15.2 二进制的使用说明


(1)计算机底层的存储方式:所有数字在计算机底层都以二进制形式存在

(2)二进制数据的存储方式:所有的数值,不管正负,底层都以补码的方式存储


1.3.15.3 八进制


用0~7来表示八进制,满8进1,以数字0开头


1.3.15.4 十进制


用0~9来表示十进制,满10进1,以数字0开头


1.3.15.5 十六进制


用数字09及字母AF来表示十六进制,满16进1,以0x或0X开头,此处A~F不区分大小写


1.3.16 源码、反码、补码


(1)正数的源码、反码、补码都是一样的

(2)负数

① 源码:将给定的数值转成二进制数,最高位是符号位

② 反码:将源码按位取反,符号位变号

③ 补码:反码 + 1


1.3.17 运算符


1.3.17.1 算术运算符

+ - / % (前)++ (后)++ (前)-- (后)--

int num1 = 12;
int num2 = 5;
int result1 = num1 / num2;
System.out.println(result1);   //2   

上方结果解释:此处不得2.4的原因即为int是整数类型,整数类型之间的运算只会得出整数,小数会自动舍弃

int m1 = 12;
int n1 = 5;
System.out.println("m1 % n1 = " + m1 % n1);    //2  

上方结果解释:此处不得2.4的原因即为%代表区域,12 / 5 这一表达式商2余2,此处的2表示余数

int m2 = -12;
int n2 = 5;
System.out.println("m2 % n2 = " + m2 % n2);   //  -2

上方结果解释:符号看被除数

int m3 = 12;
int n3 = -5;
System.out.println("m3 % n3 = " + m3 % n3);

上方结果解释:符号看被除数

int m4 = -12;
int n4 = -5;
System.out.println("m4 % n4 = " + m4 % n4);

上方结果解释:符号看被除数

int a1 = 10;
int b1 = ++a1;
System.out.println("a1 = " + a1 + ",b1 = " + b1);     // a1 = 11 b1 = 11 

++a1主要进行的操作是先自增后赋值,故a1的值先变成11赋给b1,此时b1的值为11,a1经过自增后也是11

int a2 = 10;
int b2 = a2++; 
System.out.println("a2 = " + a2 + ",b2 = " + b2);        // a2 = 11 b2 = 10 

a2++主要进行的操作是先赋值后自增,先把a2=10这一条件给予b2,此时b2的值为10,a2在赋值操作完成之后,进行自增操作变为11


1.3.17.2 赋值运算符


= += -= *= /= %=

int i2,j2;
i2 = j2 = 10;
int i3 = 10,j3 = 20;
int num1 = 10;
num1 += 2;   //num1 = num1 + 2;
System.out.println(num1);//12

上方代码详解

(1)代码第一行定义i2j2两个变量,代码第三行定义i3j3两个变量,第五行定义变量num1,令其值为10

(2)代码第二行将10赋值给i2j2

(3)代码第五行执行+=的操作,将num1的值自增2,故此时num1的值为12

int num2 = 12;
num2 %= 5;//num2 = num2 % 5;
System.out.println(num2);   //  2

上方代码详解

(1)代码第一行定义一个变量num2,并将12赋值给它

(2)代码第二行进行赋值运算操作,12 % 5 = 2,故答案为2

short s1 = 10;
s1 = s1 + 2; //编译失败
s1 += 2;
System.out.println(s1);

赋值操作不会改变变量本身的数据类型


1.3.17.3 比较运算符


int i = 10;
int j = 20;
System.out.println(i == j);//false
System.out.println(i = j);//20
boolean b1 = true;
boolean b2 = false;
System.out.println(b2 == b1);//false
System.out.println(b2 = b1);//true


相关文章
|
4月前
|
搜索推荐 定位技术
撒旦快速入门实战
撒旦快速入门实战
|
3月前
|
监控 安全 Linux
撒旦快速入门实战2
撒旦快速入门实战2
|
8月前
|
安全 Java 数据库连接
【Java 从入门到出门】第一章:专栏导读(强烈推荐)
【Java 从入门到出门】第一章:专栏导读(强烈推荐)
50 1
共36万字!为上岸Alibaba,我把Github上Java面试题都整理了一遍
如果你不停地加班。却很少冒险,也很少学习,那你极大可能会陷入到内卷中。 为什么这么说呢?我们先来捋清楚「内卷」的概念: 「内卷化」简而言之就是:日复一日,越混越掉坑里。
|
缓存 JavaScript 前端开发
面试题练习第四篇
面试题练习第四篇
91 0
|
存储 设计模式 算法
JavaSE笔记--韩顺平(入门详细版)(一)
JavaSE笔记--韩顺平(入门详细版)(一)
537 3
|
安全 Java 编译器
JavaSE笔记--韩顺平(入门详细版)(五)
JavaSE笔记--韩顺平(入门详细版)(五)
151 4
|
存储 网络协议 安全
JavaSE笔记--韩顺平(入门详细版)(四)
JavaSE笔记--韩顺平(入门详细版)(四)
177 2
|
存储 设计模式 安全
JavaSE笔记--韩顺平(入门详细版)(三)
JavaSE笔记--韩顺平(入门详细版)(三)
206 0
|
存储 XML 安全
JavaSE笔记--韩顺平(入门详细版)(二)
JavaSE笔记--韩顺平(入门详细版)(二)
280 0