java入门(第一周)
Day1
一、
1、常见的cmd命令
指令符 功能 例子
(1)盘符+冒号---------盘符切换 例:E:回车,表示切换到E盘
(2)dir-------------------查看当前路径下的内容
(3)cd目录-------------进入单级目录
(4)cd.. ----------------回退到上一级目录
(5)cd 目录1\目录2------进入多级目录
(6)cd \ ---------------回退到盘符目录
(7)cls-----------------清屏
(8)exit----------------推出命令提示符窗口
2、为什么要配置环境变量
答:我们想要在任意的目录下都可以打开指定的软件,就可以把软件的路径配置到环境变量中。
3、
4、注释
注释与c,c++的注释语法相同。
Day2
一、
1、在定义变量的时候,最好直接进行赋值。
2、各种进制
(1)二进制:由0和1组成,代码中以0b开头;
(2)十进制:由0~9组成,前面不加任何前缀;
(3)八进制:由0~7组成,代码中以0开头;
(4)十六进制:由0~9还有a~f组成,代码中以0x开头;
3、任意进制转换为十进制
4、十进制转换为其他进制
5、
二进制:BIN
八进制:OCT
十进制:DEC
十六进制:HEX
6、计算机三原色:红,绿,蓝 数据范围为0~255;
二、数据类型
1、如果要定义long类型的变量,需要在数据值的后面加上一个L作为后缀,L可以大写也可以小写,但建议大写,这样不容易与数字‘1’混淆;例:999999999L
2、定义float变量时,需要在数据值后面加F或f作为后缀
3、布尔数据类型(boolean)只有true和false
4、字符串数据类型为“String”开头S要大写;
三、标识符
1、标识符命名规则
(1)由数字、字母、下划线(_)和美元符($)组成
(2)不能以数字开头
(3)不能是关键字
(4)区分大小写
2、建议
四、键盘录入
java帮我们写好了一个类叫Scanner,这个类可以接收键盘输入的数字
1、导包------Scanner这个类在哪
import java.util.Scanner;
2、创建对象------表示我要开始用Scanner这个类了
Scanner sc= new Scanner(System.in);
3、接收数据----真正开始干活了
int i=sc.nextInt();
Day3
一、算术运算符
(1)算术运算符加减乘除取余
①如果在运算中有小数参与,运算结果有可能不精确
②整数参与计算,结果只能为整数
③隐式转换的两种提升规则
<1>取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
<2>byte short char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行计算
④强制转换
如果把一个取值范围大的数值,赋值给取值范围小的变量是不允许直接赋值的,需要强制转换
格式:目标数据类型 变量名=(目标数据类型)被强转的数据;
(2) 字符串的”+“操作
①当”+“操作中出现字符串时,这个”+“是字符串连接符,而不是算术运算符了,会将前后的数据进行拼接,并产生一个新的字符串。
②连续进行”+“操作时,从左到右逐个执行。
③只要有字符串出现,则为字符串拼接操作。
④如果字符串+变量,就把变量中的值拿出来与字符串拼接。
(3)字符的相加
①字符+字符 会将字符通过ASCII码表查询到对应的数字再进行计算
②字符+数字 会将字符通过ASCII码表查询到对应的数字再进行计算
③字符+字符串 先将字符转换为ASCII表中值,再与字符串进行拼接
(4)自增自减运算符
①+=、-=、*=、/=、%=底层都蕴藏了一个强制类型转换
例:short s=1;
s+=1; //等同于s=(short)(s+1);
二、逻辑运算符
短路逻辑运算符(可以提高效率)
(1)&& 若式子的左边为true,再去判断式子的右边;如果式子的左边为false,则无需再判断式子的右边
(2)|| 若式子的左边为true,则无需再判断式子的右边;如果式子的左边为flase,再去判断式子的右边
三、运算符的优先级
四、原码、反码、补码
(1)负数补码是在反码的基础上+1;
(2)正数的原码,反码,补码都一样;
(3)计算机中的存储和计算都是以补码的形式进行的;
(4)右移,在最高位,如果原来为正数就补0,负数就补1;
(5)右移一位对应“除以2”,左移一位对应“乘以2”;
不管正负,高位直接补0
Day4
一、if else语句
(1)"if" "else if"搭配可以提高程序的效率,即如果前面的if满足之后就不会再去执行后面的else if;
二、switch语句
如果表达式不满足任何一个case,就去执行最后的default;
(2)注意事项
①位置:default不一定写在最下面,我们可以写在任意位置,只不过习惯性写在最下面;
②省略:default可以省略,语法不会出错,但不建议省略;
③如果每个case后面不带break,会产生case穿透(执行过程:首先还是会拿着括号中表达式的值与下面每一个case进行匹配,如果匹配上了,就执行对应的语句体,如果此时发现了break,就结束整个switch语句,如果没有发现break,那么程序会继续执行下一个case的语句,直到遇到break或者右大括号为止);
(3)switch另一种“情况表示方法”
如果每个语句体只有一行代码,可以将大括号省略(可以简化一部分)
(4)switch和if的选择
switch:把有限个数据一一列举出来,让我们任选其一;
”if“,”else if“:一般用于对范围的判断;
Day5
一、
(1)java语言中的while语句()小括号内只能是boolean类型的数据,不能直接把一个int类型数据放进去;
(2)无限循环的下面不能继续写代码,因为无限循环永远停不下来,因此下面的代码永远执行不到;
(3)continue结束本次循环,进入下一次循环;break结束整个循环(跳出循环体);
二、随机数
(1)需要导包:
import java.util.Random; (导包的动作必须在类定义的上边);
(2)创建对象:
Random r=new Random(); (r是变量名,可以改变,别的不允许改变)
(3)生成随机数:
int number=nextInt(随机数的范围);
注意事项:同学们请注意,这里的bound可不是直接键盘打上去的。写完nextInt(),点一下括号内部,输个数字,就会出来bound了
eclipse中不用带bound也可以实现;
生成任意数的随机数:
r.nextInt()括号里也可以是两个数,直接表示头和尾 例:r.nextInt(15,20);
注意:括号里有两个数时,也是包含左边,不包含右边(左闭右开)
Day6
一、数组
(1)数组的定义
java倾向于用第一种方法;
(2)数组的静态初始化
完整格式:数据类型【】数组名=new 数据类型【】{元素1,元素2 ....};
简化格式:数据类型【】={元素1,元素2......};
(3)数组的地址值
(4)计算数组的长度
”数组名.length“获得数组的长度;
快速生成数组的遍历:
数组名.fori 然后回车(idea特有的)
(5)数组的动态初始化
默认初始化值的规律:
细节问题:
Day7
一、方法(方法是程序中的最小执行单元)
优点:
①提高代码的复用性;
②提高代码可维护性;
(1)方法的定义和调用的语法与c++类似
(2)方法的定义写在main函数外面,类的里面;
(3)带参数的方法
(4)带返回值的方法
(5)方法调用的时候,参数的数量和类型必须与方法定义中小括号中的变量一一对应,否则会报错;
(6)实际操作中,一般是把重复的代码或者具有独立功能的代码抽取到方法中;
二、总结
(1)(方法的返回值类型可以是数组类型的)
(2)方法的定义写在main函数外面,类的里面;
(3)return关键字
三、方法的重载
(1)定义(同类同名不同参,与返回值类型无关)
与方法的返回值类型无关;
四、方法的基本内存原理
(1)栈上的元素先进的后出去;
(2)方法运行时使用的内存 在栈上
(3)基本数据类型和引用数据类型
①基本数据类型中的变量中存储的是真实的数据;
②引用数据类型中的变量中存储的是地址值;
例: ps:new出来的数据都在堆区
巧记
(4)
①传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值;
②传递引用数据类型时,传递的时地址值,形参的改变,影响实际参数的改变;
③如果在方法的形参中是引用数据类型,则原值会跟着改变