Java学习笔记

此文章为学习【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili所写笔记。基础部分。

Java三大版本

1.JavaSE:标准版(桌面开发,控制台开发…)

2.JavaME:嵌入式开发(手机,小家电…)

3.JavaEE:企业级开发(web端,服务器开发…)


HelloWorld!

(ps此为jdk在cmd中进行编译运行)

  1. 随便建一个文件夹用来存放代码
  2. 在里面建一个Java文件
    • 文件后缀名为.java
    • 文件名为Hello.java
  3. 在里面编写代码(右键用note+++打开/txt文本编辑器打开)
    public class Hello
    {     
    	public static void main(String[] args)
    	{        
    		System.out.print("Hello,World!");       
        }
     }
    
    1. 保存,并编译javac java文件所属地打开cmd验证编码正误

    2. 输入javac Hello.java回车即可若无错误

    3. 在后面输入java Hello

在这里插入图片描述

常出的错误

  1. java大小写错误
  2. 尽量使用英文和英文字符
  3. java编码输入错误
  4. 文件名和类名必须保证一致(文件名为Hello.java,类名定义public class Hello)

Java基础.1注释

关于注释:

1.注释并不会被执行。

2.书写注释是很好的习惯。

3.注释可以帮助我们更好地梳理与理解所写内容。

4.写代码要注意规范,规范意识会给我们带来不一样的收获。

Java中的注释有三种:

1.单行注释 //注释 //

2.多行注释 / *注释 * /

3.文本注释 //JavaDoc /* *注释 */


Java基础.2关键字和标识符

关键字:

  • Java 常用关键字如下,这些关键字不可用于常量、变量、和任何标识符的名称。

在这里插入图片描述

标识符:

Java所有的组成部分都需要名字,类名、变量名以及方法名都被称为标识符

标识符注意点:

  1. 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始

  2. 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合

  3. 关键字不能用作标识符

  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary、#abc
  • 也可使用中文/拼音来命名一般不建议使用

Java基础.3数据类型

强类型语言:

  • Java是强类型语言,要求变量的使用要严格符合规定,所有的变量必须先定义后使用。

Java的数据类型分为基本类型和引用类型

基本类型:

  • 数值类型

    1. 整数类型:

      • int:4个字节,-2 ^ 31 ~ 2 ^ 31-1,例如:int a = 100000, int b = -50000。

      • short:2个字节,-2 ^ 15~2 ^ 15-1,例如:short s= 1000,short r = -200。

      • long:8个字节,-2 ^ 63~2 ^ 63-1, long a = 100000L,long b= -60000L。

      • type:1个字节,-2 ^ 7 ~ 2 ^ 7-1,例如:byte a=10,byte b=-10。

    2. 浮点类型:

      • float: 4个字节 (单精度),例如: float f = 234.5。
      • double 8个字节 (双精度),例如:double d= 8.0。
    3. 字符类型

      • char:两个字节
      • boolean类型 占1位其值只有true和false(0和1)

    引用类型:

    1. 接口
    2. 数组

字节和进制:

  1. 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。
  2. 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示,
    1B(byte,字节)= 8bit(位)。
  3. 字符:是指计算机中使用的字母、数字、字和符号。
单位进制:

1bit表示1位

1Byte表示一个字节1B=8b;

1024B = 1KB

1024KB = 1M

1024M = 1G


Java基础.4数据类型拓展

1.整形拓展:

  • 十进制整数,如:99,-500,0;例如:int i = 99;
  • 八进制整数,要求以0开头,如:015;例如:int i = 015;
  • 十六进制数,要求0x或0X开头,如:0x15;例如: int i = 0x15;

2.浮点数拓展:

  • 一般默认为double;
  • 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
  • 要尽量避免比较中使用浮点数(能避免就避免)例如:float f = 0.1f;double d = 1.0;

3.字符型拓展:

  • 单引号用来表示字符常量。例如==‘A’是一个字符,而“A”==表示一个字符串。
  • char 类型用来表示在Unicode编码表中的字符。(ps:关于Unicode的简介:如果把各种文字编码形容为各地的方言,那么Unicode就是世界各国合作开发的一种语言)
  • Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;例如:char c1 = ‘a’; char c2 = ‘中’;
java一些常用的转义字符:
符号\n\r\b\s\t\”\’\ \
字符含义换行回车退格空格制表符双引号单引号反斜杠

4.布尔型拓展:

  • boolean类型 其实就是0/1。

  • boolean类型有两个值,true和false。

    ps:这里与C语言有所不同,即不能用0 或非 0 的整数替代 true和false 。

  • boolean 类型用来判断逻辑条件,多用于程序流程控制。

  • 例如:boolean flag = false;

           if(flag){  
           // true分支    
           }else{   
           // false分支 
           }
    

Java基础.5类型转换

  • 由于Java是强类型语言,所以进行有些运算时需要进行类型转换

强制转换 (类型)变量名

1.自动类型转换:

  • 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。

  • 由低到高 byte,short,char—> int —> long—> float —> double

2.强制类型转换:

  • 强制类型转换,又被称为造型,用于显式的转换一个数值的类型.(由高到低)

隐含强制转换:

  • 可能的默认类型是int。
  • 小数默认是双精度浮点型double,在定义浮点类型时必须在数字下面跟上 F 或者 f。

类型转换注意:

  • long类型使用大写L不要用小写。
  • 不能把布尔值进行转换。
  • 不能把对象类型转换为不相干的类型 。
  • 在把高容量转换到低容量的时候,强制转换 。
  • 转换的时候可能存在内存溢出,或者精度问题。

拓展

①JDK7新特性: 二进制整数
JDK7为我们直接提供了二进制整数的类型。以0b开头即可。

//例如:int a = 0b0101:

②JDK7新特性:下划线分隔符

//例如:int b = 1_2345_6789;

根据特性,我们能够很容易地知道这是1亿2345万6789。


Java基础.6变量、常量、作用域

1.变量

  • 变量是什么:就是可以变化的量。
  • Java是一种强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域。
  • Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。

变量的定义:

  • 变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
type varName [=value] [{,varName[=value]}];

//数据类型   变量名=值;可以使用逗号隔开来声明多个同类型变量。
格式:
// 声明变量并赋值
//数据类型 变量名 = 数据值;
int age = 18;
System.out.println(age);

也可以先声明,后赋值(使用前赋值即可)

//数据类型 变量名;
//变量名 = 初始化值;
double money;
money = 55.5;
System.out.println(money);
变量的命名规范:
  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()
注意事项:
  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声名必须是一条完整的语句,因此每一个声明都必须以分号结束。
package base;
public class Demo04 {
	public static void main(String[] args) {
		 //int a,b,c;
 		 //int a=1,b=2,c=3;//这样写不好,尽量一行一行的写,避免一行定义多个值。
        //程序可读性要让大家尽量看得懂
        String name ="lph";//String是一个引用类型
        char x='X';//格式:变量类型   变量名字  = '值'
		double pi =3.14;
}
}
变量的初始值:
  • 所有的数值类型初始化,一般是0 0.0 u00000
    • 布尔值:默认是false
    • 除了基本类型,其余的默认值都是null;
package base;
public class Demo05 {
    //属性:变量
    //实例变量:从属于对象;可以理解为从属于一个类,它很高级.如果不自行初始化,然后就会变成这个类型的默认值。
    String name;
    int age;
    //类变量  static(关键字)从属于类
    static double salary = 2500;
    //main方法
    public static void main(String[] args) {
        //局部变量是在方法里面的;必须声明和初始化值
        int i=10;
        System.out.println(i);
        // new一个Dome05,相当于把这类拿到了
        //自定义类型也是引用类型
        //格式:变量类型   变量名字=new Dome05();
        Demo05 demo05 = new Demo05();
        System.out.println(demo05.age);
        //类变量  static(关键字)从属于类
        System.out.println(salary);
    }
    //其它方法
    public void add(){
        System.out.println();
    }
}
变量作用域:
  • 类变量(写在类里面的)
  • 实例变量(写在类中间)
  • 局部变量(写到方法里面)
public class Variable{    
	static int allClicks=0;//类变量    
	String str="hello world";//实例变量    
public void method(){   
    	int i=0;//局部变量    }
    	}

2.常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名=值;final double PI=3.14;
  • 常量名一般使用大写字符。

修饰符,不存在先后顺序

在程序中使用一些常量可以提高代码的可读性。


Java基础.7运算符

运算符优先级:

优先级运算符结合性
1()、[]、{}从左向右
2!、+、-、~、++、–从右向左
3*、/、%从左向右
4+、-从左向右
5«、»、>>>从左向右
6<、<=、>、>=、instanceof从左向右
7==、!=从左向右
8&从左向右
9^从左向右
10|从左向右
11&&从左向右
12||从左向右
13?:从右向左
14=、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>=从右向左

1.基本运算符:

  • 运算符和表达式
    • 运算符:对常量或者变量进行操作的符号
    • 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。

算数运算符:

  • +:是运算符,并且是算术运算符。
  • a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。
算数运算符作用
+加法运算,字符串连接运算
-减法运算
*乘法运算
/除法运算
%取模运算,两个数字相除取余数

Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

public static void main(String[] args) {
int i = 1234;
System.out.println(i/1000*1000);//计算结果是1000
}
符号在字符串中的操作:
  • 符号在遇到字符串的时候,表示连接、拼接的含义。
  • “a”+”b”的结果是“ab”,连接含义

赋值运算符:

符号作用说明
=赋值a=10,将10赋值给变量a
+=加后赋值a+=b,将a+b的值给a
-=减后赋值a-=b,将a-b的值给a
*=乘后赋值a*=b,将a×b的值给a
/=除后赋值a/=b,将a÷b的商给a
%=取余后赋值a%=b,将a÷b的余数给a
  • 赋值运算符,就是将符号右边的值,赋给左边的变量。
public static void main(String[] args){
int i = 5;
i+=5;//计算方式 i=i+5 变量i先加5,再赋值变量i
System.out.println(i); //输出结果是10
}
  • +=符号的扩展
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

自增自减运算符:

符号作用说明
++自增变量的值加1
自减变量的值减1
独立运算:
  • 变量在独立运算时, 前++ 和 后++ 没有区别 。
    • 变量 前++ :例如 ++i 。
    • 变量 后++ :例如 i++ 。
  • 混合运算:
    • 和其他变量放在一起, 前++ 和 后++ 就产生了不同
    • 变量 前++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。
public static void main(String[] args) {
int a = 1;
int b = ++a;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是2
}

变量 后++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a 的结果是2,b的结果是1

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

逻辑运算符:

符号含义
&&与(有假即假,两真才真)
||或(有真即真,两假才假)

位运算符:

运算符含义实例结果
&按位进行与运算(AND)4 & 54
|按位进行或运算(OR)4 | 55
^按位进行异或运算(XOR)4 ^ 51
~按位进行取反运算(NOT)~ 4-5

位与运算符&,其运算规则是:参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位同时为 1,那么计算结果才为 1,否则为 0。因此,任何数与 0 进行按位与运算,其结果都为 0。

位或运算符|,其运算规则是:参与运算的数字,低位对齐,高位不足的补零。如果对应的二进制位只要有一个为 1,那么结果就为 1;如果对应的二进制位都为 0,结果才为 0。

位异或运算符^,其运算规则是:参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位相同(同时为 0 或同时为 1)时,结果为 0;如果对应的二进制位不相同,结果则为 1。

位取反运算符~,其运算规则是:只对一个操作数进行运算,将操作数二进制中的 1 改为 0,0 改为 1。

位移运算符:

运算符含义实例结果
»右移位运算符(指哪往哪)8»14
«左移位运算符9«236

口诀:左移×2,右移÷2(奇数-1)

条件运算符:

Java 提供了一个特别的三元运算符(也叫三元运算符)经常用于取代某个类型的 if-then-else 语句。条件运算符的符号表示为“?:”,使用该运算符时需要有三个操作数,因此称其为三元运算符。使用条件运算符的一般语法结构为:

bollean b= 40<50 ? true : false;

以上代码用if else实现

bollean a;
if(40<50)
    a=true;
else
    a=false;

例:输入小明的成绩,如果高于95分,则为优秀,否则成绩良好

代码实现:

import java.util.Scanner;
public class Test_xm {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int test = 0;
        String a=(int)test>95 ? "优秀":"一般";
        System.out.println("请输入小明测试的成绩");
        test = input.nextInt();
        System.out.println("小明的成绩等级为:"+a);
    }
}

Java基础.8包机制和Javadoc

包机制:

为了更好的组织类,java提供了包机制,用于区别类名和调用其他的包中的类。

  • 定义包

    格式:package pkg1[.pkg2.[……]]

    如:package com.kuang.Scanner;

  • 导入包
    格式:import package pkg1[.pkg2.[…]]

    如:import java.util.Scanner;

通配符:.*

import com.kuang.base.*;(导入这个包下所有的类)

Javadoc:

/** + 回车.自动生成参数信息

@author 作者

@version 版本号

@since 指明需要最早使用的jdk版本

@param 参数名

@return 返回值情况

@throws 异常抛出情况

在文件位置输入 cmd 打开命令控制符

输入 javadoc -encoding UTF-8 -charset UTF-8 Doc.java回车

index.html即为生成的文档

使用IDEA生产javadoc文档:

项目->右键->点击Open in->点击Explorer

在这里插入图片描述

输入cmd打开

在这里插入图片描述

输入:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

在这里插入图片描述

我们就可以看到文件夹生成了许多东西,然后点击index.html就可以查看了

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值