1.总体命名规范
项目名全部小写;
包名全部小写;
类名首字母大写,若类名由多个单词组成,则每个单词的首字母大写;
变量名和方法名首字母大写,若名称由多个单词组成,每个单词的首字母大写;
常量名大写。
所有命名规则必须遵循以下原则
1、名称只能由字母、数字、下划线、$符号组成;
2、不能以数字开头;
3、名称不能是Java中的关键字;
4、不允许使用中文命名。
2.基本数据类型
4种整数类型:int、long、byte、short
2种浮点数类型:float、double
1种字符类型:char
1种布尔类型:boolean
注意==和equals()的区别
" == " 比较的是值
" == " 如果比较的是基本数据类型,比较的则是变量值
" == " 如果比较的为引用数据类型,比较的则是地址值
equals比较的是引用数据类型
如果没有重写hashCode和equals方法,比较的是地址值。因为Object的equals方法中使用是" == " 。
如果重写hashCode和equals方法,则比较的重写后的规则。
/** * @Author: Mo * @Date: 2021/1/20 11:53 */ public class Compare { public static void main(String[] args) { int i1 =200; int i2 =200; System.out.println("i1==i2: "+(i1==i2)); Integer i3 =100; Integer i4 =100; System.out.println("i3==i4: "+(i3.equals(i4))); } }
3.运算符
运算符基本分为五类:算数运算符、赋值运算符、比较/关系运算符、逻辑运算符、位运算符。
1、算数运算符
算数运算符都包括:加(+)、减(-)、乘(*)、除(/)、取模(%)、自增(++)、自减(–)、字符串连接符(+)。
使用规则:
byte/short在运算的时候会自动的提升为int,然后进行运算,运算结果为int。
同一个类型参与运算,结果的类型与参与运算的类型一致。
如果运算过程中有大类型参与了运算,结果一定是大类型
%(取模运算符/取余)
在做取余运算的时候,先按正数进行取余,然后看%左边数字的符号,如果%左边的数字是正数,那么结果就是正数。
++/–(自增自减运算)
相当于在原来的基础之上自增/自减1。
++ 在变量名之前,表示先自增,自增完成之后才会参与其他运算。
++ 在变量名之后,表示先拿变量的原来的值参与运算,然后再自增。
+(字符串拼接符/连接符)
可以利用+将两个字符串进行拼接,或者也可以利用+将任何数据与字符串进行拼接。
2、赋值运算符
十二个运算符:=(等于) +=(加等) -=(减等) *=(乘等) /=(除等) %=(取余等) &=(与等) |=(或等) ^=(异或等) <<=(左移等) >>=(右移等) >>>=(无符号右移等)
注意:除了=以外,其余的赋值运算符要求这个变量必须有初始值。
byte/short可以参与赋值运算,运算结果仍是原类型。
3.关系运算符/比较运算符
关系运算符又叫比较运算符。
七个运算符:==等于、!= 不等于、>(大于) 、<(小于)、>=(大于等于)、<=(小于等于)、instanceof(判断对象于实例的关系)。它们的结果全是boolean型
关系运算符实例:
instanceof
用于判断对象是否是否对应类的实例的。
“abc” instanceof String -> true
运算完成之后结果是一个boolean类型的值。
4.逻辑运算符
六个运算符:&与(And)、|或(Or)、!非(Not)、^异或、&&简洁与、||简洁或
1.&运算规则:
true&true=true true&false=false false&true=false false&false=false
见false为false。
2.|运算规则:
true|true=true true|false=true false|true=true false|false=false
见true为true。
3.!运算规则:
!true=false !false=true
非否即是,非是即否。
4.^运算规则:
true^true=false true^false=true false^true=true false^false=false
相同则为false,不同则为true。
5.&&运算规则:
对于&&而言,如果前边的表达式的结果为false,则后边的表达式就不再运算。
6.||运算规则:
对于||而言,如果前边的表达式的结果为true,则后边的表达式就不再运算。
注意:简洁特性可以提高代码的运算速度。
5.位运算符
7个运算符号:
&(与)、|(或)、 ^(异或)、<<(左移)、>>(右移)、>>>(无符号右移)、~(取反)
与或非运算规则:
奇数^偶数=奇数
a ^ b ^ b = a; b ^ b ^ a = a
注意:
Java中所有的数值类型的数据都是有符号的。
baty/short参加左移和右移和无符号右移结果为int。
一个数字右移几位就是将这个数字除以2的几次方,然后取整。
4.java条件选择语句和循环语句
一、条件选择语句
1、单条件选择语句
格式:if(){
}
说明:小括号里面放的是条件语句,必须值是一个boolean 类型,如果小括号里面为true 那么就执行大括号里面的执行语句,如果为false 就不执行。
二、三种循环结构
for,while,do…while 循环,本质没有任何区别都可以进行循环
三、双重for循环
循环嵌套理解:
循环的嵌套还是要记住循环的执行流程,把外层循环里面的循环看成是一个执行语句,记住每一次外层循环之后,里面的循环必须循环完成之后才会再去外层循环执行下一次。
四、循环控制语句
1、break:跳出整个循环,循环不会再执行
2、continue:跳出这一次循环,执行下一次循环
3、return:结束一个方法
5.数组
数组的定义
数组是相同类型数据的有序集合
每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
数组的四个基本特点
1.其长度是确定的。数组一旦被创建,它的大小就是不能改变的。
2.其中的元素必须是相同类型,不允许出现混合类型。
3.数组中的元素可以是任何数据类型,包括基本类型和引用类型。
4.数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身即是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
总结:我做算法题都是看作数学题,将数学的解题方法用Java语言表示出来,而随着对蓝桥杯的准备,我发现真正的算法应该灵活运用java语言的运算符,记住某些情况下的解题套路,巧妙解决算法题的同时考虑其时间和空间复杂度。
6.面向对象
1.万物皆对象
2.一个.Java文件中可以定义多个类但是只有一个类被public 修饰,他的类名和文件名保持一致
3.一个类并不是必须要有main方法同样一个类也不是必须要有一堆属性和一堆方法,根据需求决定
4.对象的特征——属性
属性——对象具有的各种特征
每个对象的各种属性都拥有特征值
对象的行为——方法
方法——对象执行的操作
对象——用来描述客观事物的一个实体,由一组属性和方法构成
7.方法
存在的意义
对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代码放在一个大括号“{}”当中,并且起一个名字。使用代码的时候,直接找到名字调用即可。
组成
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:当方法被调用时,传递值给参数。这个值被称为实参或变量。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
构造方法,this关键字
1,构造方法
语法:
[访问符] 类名([参数列表]){
//初始化语句
}
(1)方法名和类名相同
(2)方法名的前面没有返回类型的声明
(3)方法中不能使用return语句返回一个值
类的构造器方法又分为两种:
默认构造方法:不带参数的构造方法,可以有语句,也可以没有语句;
非默认构造方法:是指带参数的构造方法;
2.this关键字
1.代指对象本身;
2.this访问本类的对象变量和成员方法 代表当前对象;
3.在构造方法中使用this 代表创建的对象;
语法格式:this.成员变量;
总结:面向对向的题目类似看图写话,但是当自己完成一个项目时又会感觉思路并没有那么清晰,或许大脑里要有题目一样清晰具体的思路才能快速又尽量不出错的完成项目吧。同时bug也是见过一次才能在下次遇到时游刃有余,见多才能识广,多练多看一定会有进步