2020-09-25

sbs的JAVA学习笔记

整理于新职课开课吧的笔记文档,便于学习查看

一、 JAVA基础语法

变量

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。

变量分类:
 按所属的数据类型划分:

 基本数据类型变量

  引用数据类型变量

 按被声明的位置划分:

局部变量:方法或语句块内部定义的变量

 成员变量:方法外部、类的内部定义的变量 

特别注意:类的外面不能有变量的声明 

数据类型

由于变量记录的数据内容大小不同,导致所需的存储单元大小不同,在Java语言中使用数据类型的概念加以 描述.

字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成 信息的一个小单位。Java 中的字节是八位的字节,即它包含八位的二进制数。

在这里插入图片描述
在这里插入图片描述

标识符

Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。规则如下:

  由字母、数字、下划线(_)和美元符号($)组成。	 
  不能以数字开头。
  区分大小。
  长度无限制。 
  不能是Java中的保留关键字。 
 标识符命名习惯:见名知意。

示例:
合法标识符:HelloWord、username2、user_name、_userName、$abc_123
非法标识符:2UserName、user#Name、HelloWorld、class

类型转换

boolean类型不能转换成任何其它数据类型。 

自动类型转换:容量小的类型自动转换成容量大的数据类型 
byte,short,int->float->long->double 
byte,short,int不会互相转换,它们三者在计算时会转换成int类型

强制类型转换:容量大的类型转换成容量小的数据类型时,要加上强制转换符 
longl=100L;
 inti=(int)l; 
 有可能造成精度降低或数据溢出,使用时要小心。

关键字大全

Java中有一些赋予特定的含义,有专门用途的字符串称为关键字(keyword)。全部是小写。
在这里插入图片描述
保留字:没有定义用途,但保留备用。
goto、const

方法

方法用于封装一段特定的逻辑功能。方法的主要要素有:权限修饰符方法名、参数列表和返回值。

格式:
权限修饰符 返回值 类型声明方法名称(参数列表){
方法中封装的逻辑功能;
return返回值;
}

权限修饰符详解
在这里插入图片描述返回值详解

    方法调用结束后可以返回一个数据,称之为返回值。
    方法在声明时必须指定返回值的类型。
    通过return语句返回,return语句的作用在于结束方法且将数据返回。 
    如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为void

参数列表详解

方法的参数列表:在调用时传递给方法,需要被方法处理的数据。
   在方法定义时,需要声明该方法所需要的参数变量。 
在方法调用时,会将实际参数值传递给方法的参数变量。必须保证传递参数的类型和个数符合方法的声明。

方法示例

 publicvoidsay(inta,intb){

     System.out.println(“方法say正在执行”);
	
}

运算符

一、算术运算符
在这里插入图片描述

++:如果是变量前缀:先对此变量加1,再执行其他的操作。 
    如果是变量后缀:先执行当前语句的其他操作,再对此变量加1
--:如果是变量前缀:先对此变量减1,再执行其他的操作。 
    如果是变量后缀:先执行当前语句的其他操作,再对此变量减1

二、赋值运算符
赋值运算符作用是将一个值赋给一个变量,运算顺序从右到左在这里插入图片描述
三、关系运算符
关系运算符作用是比较两边的操作数,结果总是boolean型的。在这里插入图片描述

四、逻辑运算符
逻辑运算符用于对boolean 型结果的表达式进行运算,运算结果总是boolean型,后面结合条件结构讲解。在这里插入图片描述

五、字符串连接运算符
Strings=“He”+“llo”; 结果"Hello"
"+“除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。
如:Strings=“x”+123; 结果"x123”

六、三目运算符
X?Y:Z X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。
例: intscore=75;
Stringtype=score>=60?“及格”:“不及格”;

转义字符

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能 显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了 在这里插入图片描述

标识符

 Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。规则如下: 
   由字母、数字、下划线(_)和美元符号($)组成。 
   不能以数字开头。 
   区分大小。
   长度无限制。
   不能是 Java 中的保留关键字。
   命名规范: 软性建议
   类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
   方法名规范: 首字母小写,后面每个单词首字母大写(小驼峰式)。
   变量名规范:全部小写。

分支结构

一、if条件语句
if条件结构是根据条件判断之后再做处理
if(条件语句){…}
if(条件语句){…}else{…}
if(条件语句){…}elseif(条件语句){…}
if(条件语句){…}elseif(条件语句){…}else{…}
例子:
用户输入学生成绩,判断成绩是否及格,判断条件为优良:>90、良好:81-90、中:60-80、不及格:<60

importjava.util.Scanner;
publicclassDemo4{ 
publicstaticvoidmain(String[]args){ 
	Scannerinput=newScanner(System.in); 	
	System.out.println("请输入成绩:"); 
	intscores=input.nextInt(); 
    //91优 81-90良 60-80中60差
    if(score>=91){
		    System.out.println("您的成绩是优秀!继续加油哦!");
   }elseif(score>=81&score<91){
		    System.out.println("您的成绩是良好!还要努力哦!");
    }elseif(score>=60&score<=80){ 
   			System.out.println("您的成绩是中等!还要加倍努力哦!"); }else{ 
			System.out.println("您的成绩是差!准备补考费吧!");
}
}
}

二、switch语句
switch(表达式){
case取值1:语句块1; break;
case取值n:语句块n;break;
default:语句块n+1;break;
}
switch语句有关规则
表达式的返回值必须是下述几种类型之一:int,byte,char,short,String;
case子句中的取值必须是常量,且所有case子句中的取值应是不同的;
default子句是可选的;
break语句用来在执行完一个case分支后使程序跳出switch语句块;
如果case后面没有写break则直接往下面执行!
Case后面的执行体可写{}也可以不写{}

例题:多分支月份输出天数(充分利用语句特性)

importjava.util.Scanner;
publicclassDemo6{ publicstaticvoidmain(String[]args){ 
	Scannerinput=newScanner(System.in); System.out.println("请输入月份:");
    intmonth=input.nextInt(); switch(month){ 
	 case1: 
	 case3:
	 case5: 
	 case7: 
	 case8: 
	 case10:
	 case12:
	  	System.out.println(month+"月共有31天");
	 	 break;
	 case4:
	 case6:
	 case9:
	 case11: 
	     System.out.println(month+"月共有30天"); 
	     break;
	 case2: System.out.println(month+"月共有28天");
 		break; 
		default: System.out.println("友情提示,您输入有误!");
	     break;
}
}
}

循环语句

一、简介
循环语句功能 :
在循环条件满足的情况下,反复执行特定代码

循环语句分类 
for循环
while循环
do/while循环

二、while循环
符合条件,循环继续执行
;否则,循环退出 特点:
先判断,再执行

语法:
while(条件表达式){ 
//语句块; 
}

实现示例: 录入班级人数和学员成绩,计算班级学员的平均成绩

使用while循环的步骤 
1、分析循环条件和循环操作
2、套用while语法写出代码
3、检查循环是否能够退出

intsum=0; 
intscore=0; 
intavg=0; 
intstudentNum=20;
while(i<=studentNum){
	System.out.print("请输入第"+i+"位同学的成绩:"); 
	score=input.nextInt(); sum=sum+score; i++;
} 
	avg=sum/stuNum;

三、do-while循环
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断

语法: do{ 
		循环操作
	  }
	  while(条件表达式);

while循环和do-while循环的区别?
while:先判断条件,如果条件满足,再执行循环操作
dowhile:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作。
四、for循环

语法: for(初始化参数;判断条件;更新循环变量){ 
	  循环体;
	  }

应用举例

publicclassForLoop{ 
publicstaticvoidmain(String []args){
 intresult=0;
  for(inti=1;i<=100;i++){ 
  result+=i; 
  } 
  System.out.println("result="+result);
   }
    }

数组

数组是相同数据类型的多个数据的容器。

这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素。(“简单理解就是:一个跟一个顺序排列”)。

创建格式 
格式1. 数据类型[] 数组名称 = new 数据类型[数组长度]; 
格式2. 数据类型[] 数组名称 = {数组内容1,数组内容2,数组内容3...数组内容n}; 
格式3. 数据类型[] 数组名; 
格式3属于只创建了数组引用名, 并未在内存创建数组空间。 
格式4.  数据类型[] 数组名称 = new 数据类型[]{内容1,内容2,内容3...内容n}; 

下标

可以理解为数组中内容的数字序号,从0开始 ,对于长度为n的数组,下标的范围是0~n-1。
可以通过下标的方式访问数组中的每一个元素。

例如:

创建int类型数组arr , 给数组arr的5下标赋值数据 , 然后打印
int[] arr = new int[10];   
arr[5] = 123;  
System. out .println(arr[5]) 

数组长度获取
数组名称.length

注意 :使用数组不当, 会出现如下问题:

数组未赋值: 空指针异常
超出长度的下标操作: 数组越界异常

注意:数组的长度在创建时就固定了。

数组常用算法

1, 冒泡排序
原理:

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的 数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

名字由来:
因为最小(或最大)的元素会经由交换慢慢“浮”到数列的顶端(降序或升序),就如同水中的气泡最终会上浮到 顶端一样,故名“冒泡排序”。

升序排列的口诀:    N个数字来排队    两两相比小靠前,    外层 循环length-1    内层循环length-i-1
降序排序的口诀:    N个数字来排队    两两相比大靠前,    外层 循环length-1    内层循环length-i-1

2.二分查找 (折半查找)

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,二分查找要求数组数据必须采用顺 序存储结构有序排列。

原理:
首先,假设数组中元素是按升序排列,将数组中间位置的数据与查找数据比较,如果两者相等,则查找成功;否则利用 中间位置记录将数组分成前、后两个子数组,如果中间位置数据大于查找数据,则进一步查找前子数组,否则进一步查 找后子数组。

重复以上过程,直到找到满足条件的数据,则表示查找成功, 直到子数组不存在为止,表示查找不成功

3.数组动态扩容

学习集合知识点时, 重点讲解。

二、面向对象

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值