Java基础学习

概述与环境搭建

1、java平台的系统结构(JavaSE 、JavaME 、JavaEE)。
2、编码规范/标识符命名
2.1语法规定:
>-可以由:字母、数字、_、$ 组成,但不能以数字开头。
>-不能与关键字、保留字重名。
2.2约定俗成:
>-望文生义、见名知义。
>-类名由一个或多个单词组成,每个单词首字母大写(pascal)。
>-函数名、变量名由一个或多个单词组成,首单词首字母小写,拼接词首字母大写(camel)。
>-包名全小写,只可以使用特殊字符“.”,并且不以“.”开头或结尾。
>-常量全大写,多个单词用 _ 连接。
3、println( );为输出后换行,print();为输出后不换行。

语言基础:

1、变量
>声明:数据类型 变量名; int number;
>赋值:变量名 = 值; number = 123;
>应用:System.out.println(money);
声明变量的方式:先声明,在赋值;声明的同时赋值;多个变量声明同时赋值。
变量名不能使用关键字且变量名的首字母必须为字母、_、$开始。
2、数据类型
2.1 基本数据类型
>-整形:byte、short、int、long;整型默认类型为int型。
>-浮点型:float、double;浮点型默认类型为double型。
>-布尔型:boolean;只能取true、false值,boolean不能参与算术运算。
>-字符型:char;定义char型变量,通常使用一对’',内部只能写一个字符。
2.2 引用数据类型
>-字符串:String;值在“ ”之间。
3、类型转换
3.1 自动类型转换:
>-两种类型相互兼容。
>-数值类型(整数和浮点数)互相兼容。
>-目标类型大于源类型。
>-int 与 char可以互相转换。
3.2 强制类型转换
>-把取值范围大的强制转换为小的。
>-两种类型相互兼容。
>-目标类型小于源类型。
>-强制转换容易出现数据丢失,如double的小数被丢失。
4、算术运算符
i++ 先运用在计算
i-- 先运用在计算
++i 先计算在运用
–i 先计算在运用
5、逻辑运算符
&&中如第一个条件不成立后面就不会再计算判断。
||中如果第一个条件成立后面就不会再计算判断。
优先级为:!>&&>||
6、三元运算符
?:
布尔表达式?a:b
当布尔表达式结果为真,获得a;反之获得b。
7、表达式
算术运算符>关系运算符>逻辑运算符,
优先级别最低的是赋值运算符,
可以通过()控制表达式的运算顺序,
()的优先级最高()
8、控制台录入
导包:
import java.util.Scanner;
声明:
Scanner sc = new Scanner(System.in);
使用:
数据类型 变量名 = sc.nextxxx();
xxx为:nextInt(); //获得整数
xxx为:nextDouble(); //获得小数
xxx为:next(); //获得字符串
xxx为:next().charAt(0);//获得单个字符

选择结构与分支结构

1、概念:根据已知条件进行逻辑判断,满足条件后执行相应操作。
2、if选择结构
语法:
if(布尔表达式){
//代码块
}
3、if else选择结构
语法:
if(布尔表达式){
//代码块一
}else{
//代码块2
}
4、多重if选择结构
语法:
if(布尔表达式1){
//代码块一
}else if(布尔表达式2){
//代码块22
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}
5、嵌套if选择结构
语法:
if(外层表达式){
if(内层表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
//外层代码块
}
6、switch分支结构
语法:
switch(变量 | 表达式){
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;
}

循环结构

1、while循环(先判断、在执行)
语法:
while(布尔表达式){
//逻辑代码(循环操作)
}
2、do while循环(先执行一次在判断)
语法:
do{
逻辑代码(循环操作)
}while(布尔表达式);
3、for循环(首次执行初始部分)
语法:
for(初始部分 ; 循环条件 ; 迭代部分){
//循环操作
}
4、break:终止、跳出switch、循环结构。
5、continue:结束本次、进入下一次循环。

方法

1、方法的概念
它是一个容器,储存着特定功能段的代码,实现反复利用功能。
2、方法定义
无返回值定义语法:
public static void 方法名(形参){
//实现某些特定功能段的代码
}
方法定义在类的内部,与主方法并列
调用方法的语法:方法名称(实参)
有返回值定义语法:
public static 返回值类型 方法名(形参列表){
//方法主体
return XXX;//返回的值
}
调用语法:变量=方法名称(),变量类型与返回值类型要一致
3、return
使用在有返回值类型的方法体中
return XXX;表示结束当前方法,并伴有返回值,返回到方法调用处
使用在没有返回值类型(void)的方法体中
return;表示结束当前方法,直接返回到方法调用处。
这个关键字后面不可以声明执行语句。
4、使用方法可以减少代码冗余,复用性、可读性、可维护性都提高,方便分工合作

数组

1、数组概念
一组连续的储存空间,储存多个相同数据类型的值,特点类型相同,长度固定
2、声明与赋值
先声明、在分配空间:
数据类型[] 数组名;
数组名 = new 数组类型[长度];
声明并分配空间:
数据类型[] 数组名 = new 数据类型[长度];
声明并赋值:
数据类型[] 数组名 = {值1,值2,值3,。。。};
整数的默认值:0
小数:0.0
字符:\u0000
布尔:false
其他:null
3、组成
访问无效的下标,会导致数组下标越界,下标的有效范围:0~数组长度-1
数组的长度一旦确定就不能修改
扩容:创建大于原数组长度的新数组,将原数组中的元素依次复制到新数组中
利用工具System.arraycopy(原数组,原数组起始,新数组,新数组起始,长度)。
利用java.util.Arrays.copyOf(原数组,新长度)
4、数组排序
冒泡排序:相邻的两个数值比较大小,互换位置。

 for(int i = 0 ; i < nums.length - 1 ; i++){// i=3  外层循环:控制比较轮次(num.length-1)
    	for(int j = 0 ; j < nums.length - 1 - i ; j++){ // 内层循环:单轮当中比较次数
    		if(nums[j] < nums[j+1]){
    			int temp = nums[j];
    			nums[j] = nums[j+1];
    			nums[j+1] = temp;
    		}
    	}
    }

选择排序:固定值与其他值依次比较大小,互换位置。

for(int i = 0 ; i < nums.length - 1 ; i++){
	for(int j = i + 1 ; j < nums.length; j++){
		if(nums[i] > nums[j]){
			int temp = nums[i];
			nums[i] = nums[j];
			nums[j] = temp;
		}
	}
}

JDK排序:java.util.Arrays.sort(数组名)。

5、二维数组
先声明、再分配空间:
数据类型[][] 数组名;
数组名 = new 数据类型 [][];
声明并分配空间:
数据类型 [][] 数组名 = new 数据类型[][];
声明并赋值:
数据类型[][] 数组名 = { {v1,v2,v3},{v4,v5},{v6,v7,v8,v9} }; (显示初始化)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韦少啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值