Java基础语法>>第一章总结

本文汇总了Java编程中的实用快捷键、基础概念、变量定义、数据类型、控制结构等内容,并详细介绍了数组操作、循环结构、排序算法等高级技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点:快捷键
*插入方法(main/Syso):alt+/
*快速导入一个包:ctrl+1
*删除一行:ctrl+d
*单行注释(取消):ctrl+/
*多行注释:ctrl+shift+/
*取消多行注释:ctrl+shift+\
*向下复制一行:ctrl+alt+down
*向上复制一行:ctrl+alt+up
*更改相关变量:alt + shift + r
*导入包:ctrl+shift+o
*多行缩进:shift+tab
*查找变量、方法、或被引用的地方:Ctrl+Shift+G
 
常用的快捷键
前进 Ctrl+Y 搜索 Ctrl+F
剪切 Ctrl+X 关闭当前窗口 Ctrl+W
关闭所有窗口 Ctrl+Shift+W/Alt+F4
将光标移动该行最前面 Home
将光标移到该行最后面 End
将光标改为选中模式 Insert
快速移动到文档最上面 Page Up
快速移动到文档最下面 Page Down
删除光标后面的内容 Delete
切换窗口 Alt+Tab(从左到右) Alt+Shift+Tab(从右到左)
关闭某个软件 Alt+F4
大小写切换 CapsLock
关机、锁定、任务管理器等选项 Ctrl+Alt+Delete
菜单键 Windows图标按钮
所有窗口最小化 菜单键+D
打开计算机 菜单键+E
在计算机中搜索 菜单键+F
打开运行窗口 菜单键+R
切换窗口 菜单键+Tab
文本键 替代鼠标右键  appl
截取整个屏幕 Alt+PrintScreen
从当前幻灯片播放 Shift+F5
My-Eclipse快捷键
mian alt+/
快速导入一个包:ctrl+1
删除一行:ctrl+D
单行注释(取消):ctrl+/
多行注释:ctrl+shift+/
取消多行注释:ctrl+shift+\
Dos命令
进入某个文件夹 cd 文件夹名
返回该文件夹的上一层目录 cd..
直接返回到根路径 cd \
切换盘符 盘符名:
查看当前文件夹下所有的文件和文件夹 dir
/p 分页显示 /s 显示当前文件夹所有的文件、文件夹以及子文件下所有的文件、文件夹 /w 宽屏显示 /o 分类显示
创建文件夹 md 文件夹名
创建文件 copy >文件名.扩展名
显示文件中的内容 type 文件名。扩展名
复制文件 copy 要复制的文件夹空格
删除文件夹 rd只能删除空的文件夹
删除文件 del要删除文件名。扩展名
移动文件 move 要复制的文件的位置 目标位置
重命名 ren 原文件名 新文件名
清屏 cls
查看之前输入命令 上下键
 
--------------------------------------------------------------
知识点:常用词
public:公用的
static:静态的
void:空的
main:主要的
class:类
package:包
private:私有化
set:赋值
get:取值
--------------------------------------------------------------
知识点:变量的定义
    变量是存储数据的空间。
变量的命名规范:
    1.字下美人数骆驼
    2.不能使用关键词
    3.不能重复定义
    4.首字母小写其余首字母大写,见名知意
--------------------------------------------------------------
知识点:数据类型
  数值类型:
    1.整形(short/byte/int/long):用于储存整数    如1   byte取值范围-128~+127  long取值范围大于int
    2.双精度(double/float)用于储存小数    如1.1  double数值范围大于float
  非数值类型:
    3.字符型(char):用于储存单个字符    如'男'    PS:单引号
    4.字符串(String)用于储存一串字符 如"男人"  PS:数值类型大写,双引号
    5.布尔类型(boolean)true false
**String不是基本类型,是引用类型
--------------------------------------------------------------
知识点:变量的使用步骤
    步骤1:声明变量
    步骤2:变量赋值
    步骤3:使用变量
--------------------------------------------------------------
知识点:常量(final)的使用方法
  常量代表程序运行过程中不能改变的值,如圆周率等
  常量名需大写,如多个单词组成用下划线(_)分隔
数据类型前+final;
   如:
final double PI = 3.14;
final char MALE = 'm',FEMALE = 'f';
final int STUDENT_MAX_NUM = 50;
--------------------------------------------------------------
知识点:Scanner的应用-用户键盘录入步骤
(1)import java.util.*;
 
(2)//需要给用户开一个通过键盘录入程序的入口;
    Scanner input=new Scanner(System.in);    
 
(3)使用*获取用户键盘录入的数据
    System.out.print("请输入XX");
    String name=input.next();         获取字符串
        input.nextInt(); 获取整数
        input.nexDouble(); 获取小数
        input无法获取字符(char)
--------------------------------------------------------------
知识点:运算符
算术运算符:+ - * /  % ++ --
赋值运算符:= += -= *= /= %=
关系运算符:> < >= <= == !=
逻辑运算符:& | && || ! ^
三元运算符:? :
算术运算符>关系运算符>逻辑运算符
数值比较使用==,字符串比较使用equals   如sex.equals("男");
*sex.equals("")安全 因为在当name=null的时候name.equals("")会报空指针异常
String类型变量未赋值时使用name==null,不需要使用equals
*使用++或--赋值时 等号会采取就近原则 如:
num1 = 1;
num2 = num1++;
//num1 = 2 num1 = 1
 
num1 = 1;
num2 = ++num1;
//num1 = 2 num2 = 2
--------------------------------------------------------------
知识点:if的应用
(1)流程图:
菱形:判断和分支
矩形:计算步骤/处理符号
箭头:流程线
圆角矩形:程序开始或结束
平行四边形:程序的输入/输出指令
圆形箭头:连接符
(2)if代码
if(XXXX){ //结果必须为布尔值
//代码(段首缩进)
}
(3)if-else选择结构及代码
if(XXXX){ //结果必须为布尔值
//代码1(段首缩进)
}else{
//代码2(段首缩进)
}//“{}”可省略结构
(4)多重if选择结构及代码
if(XXXX){ //结果必须为布尔值
//代码1(段首缩进)
}
else if(XXXX){ //结果必须为布尔值
//代码2(段首缩进)
}
else{
//代码3(段首缩进)
}
(5)嵌套if选择结构及代码
if(XXXX){ //结果必须为布尔值
//代码1(段首缩进)
}else if(){
//代码2(段首缩进)
}else{
 
//代码3(段首缩进)
}
}
//“{}”可省略结构
(5)结合运算符的优先级编写条件
最高的优先级:()
最低的优先级:()
优先级:!>算术运算符>关系运算符>&&>||
复杂条件使用括号提高可读性
--------------------------------------------------------------
知识点:产生一个随机数代码
int random = (int)(Math.random()*10)   //10以内,0-9的  int类型所以为整数
--------------------------------------------------------------
知识点:switch选择结构及代码
switch(mingCi){
case 常量1:
语句;
break;
case 常量2:
语句;
break;
...
default:
语句
break;
}
*条件必须为等值判断,不适用于区间判断例:>=60,此时应使用if
*可以省略break;但要保证程序正确性
*jdk7之前只支持int/short/byte/char类型,jdk7之后支持枚举类型/String类型
--------------------------------------------------------------
知识点:while循环
while(循环条件){
循环操作
}
*在不满足循环条件的情况下一次都不执行
--------------------------------------------------------------
知识点:do-while循环
do{
循环操作
}while(循环条件);
*需注意变量作用域
*需在do-while前先声明循环条件 例:String input;
*在不满足循环条件的情况下至少执行一次
 
--------------------------------------------------------------
知识点:for循环
for(参数初始化;条件判断;更新循环变量){
循环操作
}
*for循环变量为局部变量,循环外不可使用
*初始化参数可定义多个变量用,隔开
*for循环参数初始化及更新循环变量可以拆开使用,分号不可省略
*循环次数固定,for比while更简洁
*代码执行顺序,1.参数初始化,2.条件判断,3.循环操作,4.更新循环变量;后续2/3/4循环
--------------------------------------------------------------
知识点:多重循环
*嵌套循环(二重循环):外层循环每执行一次,内层循环执行一遍
*双重循环运行次数:外层*内层
--------------------------------------------------------------
知识点:break语句
*break常用于switch结构和循环结构中使用
*break可以插入循环中使用,一般配合if使用,判断条件是否满足,如满足则结束当前循环剩余语句,跳出循环
*可配合boolen使用
--------------------------------------------------------------
知识点:continue语句
*continue一般用于循环结构中
*与break不同的是如条件满足,则结束当次循环剩余语句执行下一次循环
*记录每次条件满足的变量并计数
--------------------------------------------------------------
知识点:程序调试Debug
*当结构程序复杂是,需要专门的技术来发现和定位错误,就是程序调试
*1.设置断点;2.单步运行;3.观察变量
--------------------------------------------------------------
知识点:return语句
*结束当前方法的执行并退出,返回到调用该方法的语句处:例如退出main
*反馈方法的值 例如:return 5;
--------------------------------------------------------------
知识点:求平方
Math.sqrt(int num)
--------------------------------------------------------------
知识点:数组
***无论数组里存放的是基本数据类型(int,double,char)还是引用数据类型(String),数组都是
引用数据类型
*基本要素:标识符/数组元素/元素下标(从0开始)/元素类型/长度
1、声明数组 int[] a;
2、分配空间 a = new int[5];
3、赋值     a[0] = 8;
4、处理数据 a[0] = a[0] * 10;
*声明数组格式:int[] name; int namt[];
*声明数组和分配空间可合并:例:int[] name = new int[10];
*数组赋值:
1.边声明边赋值
(1)int[] a={89,79,76};
(2)int[] a=new int[]{89,79,76}; *不能指定数组长度
2.动态的从键盘录入信息并赋值(传统型的for适合赋值)
for(int i=0;i<shuZu.length;i++){
scores[i]=input.nextInt();
}
*数组长度:数组名称.length
*增强型for/foreach 增强型for更适合遍历(将数组中的数依次取出)
for(int i:shuZu){
sum+=score;
}
--------------------------------------------------------------
知识点:求最大值
*将输入的数值依次进行比较,保存每次相比的最大值直至最后留下的数值
--------------------------------------------------------------
知识点:在数组中插入一个数值
*声明一个(数组长度-1)的值,用来保存数值插入数组的位置(声明0或-1都有问题)
*将录入的数值和数组中的5个数依次比较,确定插入位置并赋值给声明的值
*将数组中的数值由后至前依次向后赋值,空出位置插入数值
--------------------------------------------------------------
知识点:二维数组
*[][]用于表明定义了一个二维数组,通过多个下标进行数据访问
*虽然从语法上看Java支持二维数组,但从内存分配原理角度看,Java只有一维数组
1.定义一个二维数组
int[][] s = new int[3][5]; //定义了一个3*5的二维数组
2.初始化二维数组
int[][] i = new int[][]{{1,2,3,4,5},{1,2,3},{1}};
//new int[][]  可省略
//以上代码为i[0].length为5,i[1].length为3,i[2].length为1
3.遍历二维数组(增强型for)
for(int i[]:array){
for(int j:i){
System.out.println(j);
}
}
--------------------------------------------------------------
知识点:Arrays类
方法
返回类型
说明
equals(arr1,arr2)
boolean
比较两个数组是否相等
sort(arr1)
void
对数组arr1的元素进行升序排列
toString(arr1)
String
将数组arr1转换成一个字符串
fill(arr1,val)
void
把数组arr1的所有元素都赋值为val
CopyOf(arr1,length)
与arr1数组类型一致
把数组arr复制成一个长度为length的心数组
binarySearch(arr1,val)
int
查询元素值val在数组arr1中的下标
--------------------------------------------------------------
知识点:冒泡排序
*外圈i=0,循环次数为i<length-1;i++;外圈控制次数
*内圈j=0,循环次数为j<length-1-i;j++;内圈控制每一外循环进行几次比较
结果true就将两个数组内元素交换,不断进行交换将最大值下沉,一趟内循环获取一个最大值。
*每轮结束最(大/小)的数交换到最后
**规律:轮(i)/次(j) i+j=x(length-1) j=x(length-1)-i
for(int i = 0;i<nums.length;i++){
for(int j = 0;j<nums.length-i-1;j++){
if(nums[j]>nums[j+1]){
int cup = nums[j];
nums[j] = nums[j+1];
nums[j+1] = cup;
}
}
}
--------------------------------------------------------------
知识点:选择排序
*外圈i=0,循环次数为i<length-1;i++;外圈控制次数
*内圈j=i+1,循环次数为j<length-i;j++;内圈决定每一次外循环进行几次比较
*因比对数组下标的元素,所以需声明一个变量=i
*循环if(arr[min]>arr[j])结果true就记录下标位置,不断的用min这个位置依次与其他下标的元素进行比对,得出最小的元素的下标,在内循环执行完毕将arr[min]arr[i]交换
//外层循环代表的是比较几轮
for(int i = 0;i<arr.length-1;i++){
int min = i;
//内层:当前元素和后面的元素比较,记录最新的最小元素的下标
for(int j = i+1;j<arr.length-i;j++){
if(arr[min]>arr[j]){ //如果降序,将>修改为<
min = j;
}
}
//如果min值发生变化,说明发现了更小的值,则将当前值和和更小的值交换,保证小数在数组前面
if(min != i){
int cup = arr[min];
arr[min] = arr[i];
arr[i] = cup;
}
}
--------------------------------------------------------------
知识点:二分查找法(升序)
*步骤:
1.找到数组中间位置的值,并存放在一个变量(a)
2.需要查找的值(b),ba比较
3.如果b>a,则把数组中间位置作为下一次起点位置,重复1.2步。
4.如果b<a,则把数组中间位置作为下一次终点位置,重复1.2步。
5.如果b=a,返回中间位置下标(元素),完成查找
 
int[] arr = {0,1,2,3,4,5,6,7,8,9};
int f = 5;//要查找的数字
int start = 0;//定义开始查找范围下标
int end = arr.length-1;//定义结束位置的下标
int mid = -1;//定义中间位置的下标
boolean isFind = false;//标记是否找到,false没找到,true找到了
 
do{
mid = (start+end)/2;//循环寻找数组中间的值
if(f==arr[mid]){//判断f==中间值
System.out.println("恭喜你找到了,下标为:"+mid);
isFind=true;
break;//找到后将isFind改为true跳出程序
}else if(f<arr[mid]){//如果f比中间数小
end = mid-1;//下次的查找范围为0~中间值-1,
}else{
start = mid+1;//反之,下次的查找范围为(中间值+1)~(length-1)
}
}while(start<=end);//while判断条件
if(!isFind){//返回结果是false:未找到
System.out.println("很抱歉,没找到");
}
--------------------------------------------------------------
知识点:分析项目
例:
(1)项目整体架构
项目核心do-while循环
菜单功能swich
(2)细节功能实现,考虑注意点
数据初始化
2-1 图书信息 数组 41维数组
 状态数组 int 0-可借阅 1-借出
 名称数组 String
 日期数组 int
 次数数组 int
2-2 这四个数组如何关联?
 根据数组元素下标关联
查看图书
输出图书信息:使用for循环
    循环多少遍?
    if(数组元素==null){
     break;
    ]
输出图书信息和存储图书信息的类型不一致怎么办?
int->
state[i]==1?"已借出":“可借阅
新增图书
遍历数组,查找要插入图书的位置(第一个数组元素为null)
在这个位置里插入
如果图书满了就不能插入了。(最多就能存6本书)
删除图书
根据用户输入的删除图书书名,遍历书名数组,去查找
查不到,提示用户无法删除
查到了
记录下这个位置
从这个位置往后的图书,依次往前覆盖
把最后一个图书置空
借阅图书
根据用户输入的借阅图书姓名,遍历姓名数组,去查找
查不到,提示用户无法借阅
查到了
查到了书,但是书已经借出去了,提示用户无法借阅
查到了书,但是书是可借阅的状态
把图书的借阅状态->借出
输入借阅日期(日期判断,循环)
借阅次数+1
归还图书
根据用户输入的归还图书姓名,遍历姓名数组,去查找
查不到,提示用户无法归还
查到了
查到了书,但是书已经归还了,提示用户无法归还
查到了书,但是书是可借阅的状态
把图书的借阅状态->可借阅
输入归还日期(日期判断(1-31)(归还>借阅),循环)
计算租金=(归还日期-借阅日期)*1
(3)项目测试(分功能测试)
(4)总结
代码中的知识点
错误总结和解决问题方案总结
团队沟通
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值