day_2

java基础知识

(一)java中的标识符

1、标识符的定义

java中的包、类、方法、参数和变量的名字可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成

2、标识符的命名规则

1、由字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头

2、严格区分大小写,java是一门严格的强类型语言,强类型语言:所有变量都必须先定义再使用

3、标识符不能用关键字

// 合法标识符:age,$salary,_name _2_score
// 不合法标识符1baby,-enjoy,&arry

3、标识符的命名规范

1、见名知其意,不要过长

2、驼峰原则

3、包的命名:全部小写,多级包用“.”隔开

package com.zwf.project_7 

4、类或者接口:每个单词的首字母大写

public class Test 

5、方法或变量:第一个单词全部小写,第二个单词开始每个单词首字母大写

public class Test {
	static int age=21;//有static修饰,此变量是 :类变量,从属于类的,
	String name="zwf";//实例变量,也叫成员变量,从属于对象的,注意:如果不进行初始化,则输出这个类型的默认值
	
	public int print(int b){
		int c=2;//局部变量,注意:必须声明和初始化值
		int d=c+b;
		return d;
	}
}

注意事项:

(1)每个变量都有类型,类型可以是基本类型,也可以是引用类型

(2)变量名必须是合法的标识符

(3)变量声明是一条完整的语句,因此每一个声明都要以分号结束(;),必须是英文的分号

6、常量:全部大写,每个单词之间使用_进行分割(有final关键字)

定义: 修饰符 final 常量名=值;

public final String NAME="zwf"; 

注意:

(1)一种特殊的变量,其值被设定后,程序运行中不允许被改变

(2)常量一般使用大写符号

7、可以使用中文命名,但不建议,也不建议拼音命名

public String 玩笑="开玩笑";

4、java的注释

1、作用:

(1)让自己和其他用户可以方便的阅读每段程序,提高程序的可读性。

(2)可以通过注释屏蔽掉一些暂时不用的语句,等需要到时直接取消注释。

2、注释分类:

(1)单行注释:就是在注释内容前面加双斜杠(//),java编译器会忽略掉这部分信息

//int a=1;

(2)多行注释:就是在注释内容前面以单斜杠加一个星行标记开头,并在注释内容末尾以一个星行标记加单斜杠结束

/*
int a=1;
int b=2;
*/

(3)文档注释:就是在注释内容前面以单斜杠加两个星行标记开头,并以一个星行标记加单斜杠结束,用这种方法注释的内容会被解释成程序的正式文档,用以说明该程序的层次结构及方法

//JavaDoc :文档注释
/**
*@Author zwf 凯里学院
*/

5、java代码调试注意点

调试前必须打断点

(二)数据类型划分

1、数据类型

java的数据类型可分为:基本数据类型引用数据类型

2、基本数据类型的划分

1、数值型:

整数类型:byte、short、int、long;整数类型的默认类型为:0

浮点类型:float、double;浮点型只是近视值,默认型:0.0

float f=0.1f;
double d=1.0/10;
System.out.println(f==d);//运行结果:flase,因为浮点型只是近视值,故最好少用浮点型来判断

2、字符型:char;必须用单引号括起来,默认型:***‘\u0000’***

		char c1='a';
		char c2='猪';
		System.out.println(c1+"\t"+c2);
		System.out.println((int)c1+"\t"+(int)c2);//强制性转换
		//运行结果:
		//a	猪
		//97	29482
 		//所有的字符本质还是数字

3、布尔类型:boolean;默认型为:flase

3、引用数据类型

1、类(class);字符串不是基本类型,String首字母大写,它是一个特殊类

2、接口(interface)

3、数组

4、引用数据类型的默认值为:null

4、特殊数据类型——布尔类型

1、布尔数据只有两个值true和flase,不能写成bool(这是c语言的写法)

2、布尔数据只能参与逻辑关系运算:&& || == != !

5、不同类型变量存储范围

1、byte:占用一个字节,-Math.pow(2, 7)到Math.pow(2, 7)-1; -128到127

2、short:占用两个字节,-Math.pow(2, 15)到Math.pow(2, 15)-1; -32768到32767

3、int:占用四个字节,-Math.pow(2, 31)到Math.pow(2, 31)-1; -2147483648到2147483647

4、long:占用八个字节,-Math.pow(2, 63)到Math.pow(2, 63)-1; -9223372036854775808到9223372036854775807

5、float:占用四个字节,

6、double:占用八个字节,

7、char:占用两个字节,0到Math.pow (2, 16)-1

8、boolean:占用一个字节,其取值只有两个true和flase

9、注意:

数据范围与字节数不一定相关,float数据范围比long更广泛,float 4个字节,long 8个字节

6、数据类型的转换

1、自动类型转换(隐式)

​ 定义:数据范围从小到大

[

2、强制类型转换(显示)

​ 定义:数据范围从大到小

错误:报错了

在这里插入图片描述

正确:

在这里插入图片描述

3、注意:

(1)不能对boolean类型进行类型转换

(2)把容量大的类型转换为容量小的类型时,必须使用强制类型转换

(3)整型,实型、字符型数据可以混合运算

(4)运算中,不同类型的数据先转换为同一类型,然后进行运算,以下转换从低级到高级:

​ (低) byte---->char---->int----> long---->float---->double(高)

	System.out.println(2+4.0f);//int+float得到float型,运行结果为6.0

(三)java中的运算符

1、表达式

1、由操作数与运算符组成:

a+b//a与b是操作数,+是运算符,这是表达式。有分号“;”是表达式语句

2、操作数:可以由变量、常量、也可以由方法组成

逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符,而 && 和 || 运算则低于关系运算符。结合方向是:逻辑非(单目运算符)具有右结合性,逻辑与和逻辑或(双目运算符)具有左结合性。

2、赋值运算符

等号(=)在java中不是等于的意思,是***赋值***的意思,为不同数据类型的变量给定初值

int a=1;//把1赋给整型变量a

3、算术运算符(二元运算符)

1、加法(+)的三种不同含义

(1)“+”可以表示数值的相加

(2)“+”可以表示字符串的联接,任何数据和字符串连接的时候,结果都会变成字符串

System.out.println(123+"ad");//整型与字符串连接,得到结果为:123ad
System.out.println("abc"+123);//字符串与整型连接,得到结果为:abc123

2、减法(-)

3、乘法(*)

4、除法(/)

除法的运算结果是和运算对象的数据类型有关

(1)整型/整型

       //Ctrl+D:复制当前到下一行
		int a=4;
		int b=3;
		int c;
		c=a/b;
		System.out.println("4/3="+c);//整型除以整型,得到的结果向下取整结果是1(直接舍去小数部分)
		double d;
		d=a/b;
		System.out.println("4/3="+d);//计算出a/b的结果1,再将1转换成double型1.0

(2)double/整数,整数/double,double/double

        double a=6.0;
		int b=3;
		double c;
		c=a/b;
		System.out.println("6.0/3="+c);//double除以整型,得到double型,结果是2.0

整数/double

		int a=6;
		double b=3.0;
		double c;
		c=a/b;
		System.out.println("6/3.0="+c);//整型除以double,得到double型,结果是2.0

double/double

		double a=6.0;
		double b=3.0;
		double c;
		c=a/b;
		System.out.println("6.0/3.0="+c);//double除以double,得到double型,结果是2.0

(3)精度由低到高转换正确,精度由高到低转换是错误的,因为由高到低转换会丢失精度。
精度低的遇到精度高的会自动转换成精度高的。

		double a=6.0;
		int b=3;
		int c;
		c=a/b;//此处会报错

5、取余运算符(%)

java中支持取余运算符的被除数与除数是实数(C语言只支持整数),但所得余数的正负只和被除数相同

System.out.println(19.0%(9));//被除数为实型,结果也为实型1.0
System.out.println(-19.0%(9));//被除数为负实型,结果也为负实型-1.0
System.out.println(19.0%(-9));//被除数为正实型,结果也为正实型1.0
System.out.println(-19.0%(-9));//被除数为负实型,结果也为负实型-1.0

4、关系运算符

关系运算符:> >= < <= != ==

返回结果:正确或者错误,布尔型

		int a=1;
		int b=2;
		System.out.println(a>b);
		System.out.println(a<b);
		System.out.println(a==b);//等于用两个==表示,一个=是赋值
		System.out.println(a!=b);

5、逻辑运算符

1、返回结果:正确或者错误,布尔型

2、定义逻辑运算符又叫条件运算符,即运算的结果只有两种,真(true)或假(false)。

3、逻辑非(!):(这是一个一元运算符)

! 可以用来对一个值进行非运算,非运算就是值进行取反操作(布尔类型的表达式)

 		int x=2;
		int y=3;
		System.out.println(!(x>y));//2>3是错误的,应该是flase,但是有逻辑非,最后的结果为true

4、逻辑与(&&)

&&可以对符号两侧的值进行与运算并返回结果(有一个假则为则输出假,全真才输出为真

		boolean flag;
		int x=1;
		int y=2;
		flag=x>0&&y>0;
		System.out.println(flag);//运行结果:true

注意:

(1)当&&两边的值都为真时,才能得到布尔的值为真,其余结果为假

(2)若&&左边的值为假时,直接输出flase,不用再进行右边的判断(程序没走右边)

  		boolean flag;
		int x=1;
		int y=2;
		flag=x<0&&y>0;
		System.out.println(flag);//运行结果:flase

5、逻辑或(||)

||可以对符号两侧的值进行与运算并返回结果(有一个假则为则输出真,全假才输出为真

		boolean flag;
		int x=1;
		int y=2;
		flag=x<0&&y>0;
		System.out.println(flag);//运行结果:true

注意:

(1)当||两边的值都为假时,才能得到布尔的值为假,其余结果为真

		boolean flag;
		int x=1;
		int y=2;
		flag=x<0||y<0;
		System.out.println(flag);//运行结果:flase

(2)若&&左边的值为真时,直接输出true,不用再进行右边的判断(程序没走右边)

6、自增与自减运算符

1、自增运算符

(1)定义:令一个整型变量增加1

(2)两种写法:

① i++:先使用i,再将i加1

② ++i:先将i加1,再使用i

		int x=1;
		int y=2;
		int a=x++;
		int b=++y;
		System.out.println("++在后a的值:"+a+"\tx=1后:"+x);//先使用x,再将x加1
		System.out.println("++在前b的值:"+b+"\ty=2后:"+y);//先将y加1,再使用y

(3)口诀:++在前,先将i加1,再使用i

​ ++在后,先使用i,再将i加1

2、自减运算符

(1)令一个整型变量减少1

(2)用法与自增一样

7、位运算符

定义:指进行二进制位的运算

位运算符描述
&按位与
|按位或
^异或(相同为0,不同为1
~取反
<<左移位
>>右移位
>>>无符号右移位

注意:

左位移 << 运算符后面的值就是2的几次方(相当于乘以2的几次方)

System.out.println(12<<2);//运行结果:48,相当于12乘以2的2次方

右移位 >> 运算符后面的值就是2的几次方(相当于除以2的几次方)

System.out.println(12>>2);//运行结果:3,相当于12除以2的2次方

8、运算符的优先级

序号越小表示优先级越高

运算符结合性序号
()括号运算符由左至右1
[]方括号运算符由左至右1
!、+(正号)、-(负号)一元运算符由右至左2
~位逻辑运算符由右至左2
++、–自增与自减运算符由右至左2
*、/、%算术运算符由左至右3
+、-算术运算符由左至右4
<<、>>位左移、位右移运算符由左至右5
已标记关键词 清除标记
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质? 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹?   那么C++就是你个人能力提升,职业之路进阶的不二之选。 【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署; 2.吊打一切关于C++的笔试面试题; 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块 基础篇 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 进阶篇 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 提升篇: 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页