java语法
注释:
“//” ,“/* */” 和C++的注释的使用方法相同
关键字:
被java赋予了一些特定含义的英文单词,一般不能用于变量的命名,一般全为小写
字面量
注意:类名与文件名要保持相同
特殊的字符类型:
\t:表示制表符,作用是在答应的时候,将前面字符串的长度补齐到8,或者是8的倍数,最多补8个空格,(一般用于打印的时候,使得打印的内容整齐)
\r:
\n:换行符
关于输出:
输出语句:System. out.println();
关于与C++数据类型之间存在的差异
long n = 999999999L;
float f = 10.1F;
double则不需要加后缀就可以之间表达浮点数
键盘录入:
步骤一.导包:import java.util.Scanner;(注意要写在类定义上面。即在程序的最上方)
步骤二.创建对象:Scanner sc = new Scanner(System.in);
第三步.接收数据:sc.nextInt();
运算符
面向对象:
拿东西过来做对应的事情
设计对象并使用
类(设计图):是对对象共同特征的描述
在java中,必须先设计类,才能获得对象
定义类:
类有点类似与一个模型,只定义,不给值;
而对象就是真实存在的具体案例。
注意点:
编写main方法的类叫做测试类,
用来描述一类事物的类叫做Javabean类,这种类是不需要写main方法的
封装
对象代表什么,就要封装对应的数据,并提供对应的行为
因此人画圆处于圆的类,而非人的类,人只是调用了圆的方法去画圆;
关于private关键字
被private 修饰的成员只能在本类进行访问,这样随然可以保证错误的输入,但是也而导致后期修改不了,存在麻烦
正确的使用方法:
利用函数来判断,并将函数封装到类里面
this 关键字及就近原则
在成员变量与局部变量重名的时候会用到
this一般用于表示成员变量,如果不使用this那么输出的结果就会是函数里定义的age,因为这个age里我们的输出语句最近,这就是就近原则
一般是利用this 来给被prviate修饰的变量来进行赋值
构造方法
作用
在创建对象的时候对成员变量进行赋值
关于例子的具体表现
注意点:
没有构造方法,系统将自动给出无参的构造方法,但是如果写出来构造方法,那么系统就不会提供构造方法
推荐的使用方法
无论是否使用,都手动的写出两种构造方法
标准的JavaBean类
标准:
字符串
关于“==”的原理:
对于基本数据类型来说,比较的是数据值(int , double)等;
而对于引用数据类型来说,则比较的是地址值:
结果会是false;
这种存在串池的结果会是true;
new类型的与直接赋值的相比,结果为false;
关于比较字符串内容的两个函数:
键盘录入字符串的本质是new出来的,因此在比较的时候"=="本质上就是比较地址
关于遍历字符串:
数组.lenth是不用打()的,因为这是数组的特性,而字符串,lenth()是要打括号的,因为这是一种方法,在调用方法的时候,我们是需要打括号的
拼接字符串及字符串反转
拼接字符串就是简单的利用字符串的拼接特性,如result = result+字符
注意:在Java中不存在s[i],只能使用str.charAt();
利用str.charAt()获取字符串中字符,从后往前输出
金额转换
思路:
利用数组将数组转换为对应的汉字,在统计一下数字字符串的长度,了解一下零的个数,最后在通过数组将单位插进来
手机号屏蔽
利用函数
包头不包尾:对左边是闭区间,右边是开区间
注意:在使用的时候,如果想要得到小串,需要创建一个str去接受。
敏感词替换
注意:在使用的时候,如果想要得到小串,需要创建一个str去接受。
StringBuilder
stringbuilder 可以看成是一个容器,创建以后,里面的内容是可以替换的
在进行字符串拼接的时候,可以直接将多个字符串放进去,不需要创建多个字符串
使用方法:
StringJoiner

关于string的拼接原理
在没有变量的情况下直接对字符串进行拼接:就是类似直接对原本的字符串赋值拼接好后的内容
在拥有变量的情况下,就是每一次拼接都会创造一个新的string以及stringbuilder,利用stringbuilder进行拼接,然后用tostring变为字符串
关于stringBilder的原理
集合
在集合里面,不可以直接存储基本类型的数据:int double,但是可以存储引用类型的数据:string
方法:
关于代码
关于基本类型的包装类规则:
关于利用循环在录入数据的时候,要记得在条件那里不能使用i<list.size(),,因为集合一开始的大小为0
关于返回多个结果
我们可以创建一个容器用来存储我们想要输出的结果,然后再将他进行输出
面向对象进阶
static关键字
static的重点在于“共享”这个特点,在构建类的时候如果构建的类的对象在某一个特征方面是相同的,比如在一个教师上课的同学们的老师就是相同的,为了避免每次调用类的时候都需要对其进行相同的赋值,所以产生了static这一个关键字
工具类
工具类就是提供操作的类,有点像函数
注意事项:
关于this关键字
在普通的方法中,java虚拟机会在方法的括号内自动补齐this关键字,确保对象在调用方法的时候能够找到对象的内存,从内存中得到相应的信息,但是静态方法通常只与类有关而与方法无关,所以没有this 关键字
关于继承
继承的定义
关于子类与父类继承的东西
对于在继承中的成员变量访问特点;
1.就近原则:现在局部位置上找,再到本类的成员位置上找,最后到父类上找
关键字;this本类的成员位置,super:父类
方法的重写:重写父类的方法,本质上是覆盖了从父类虚方法表里的方法
在子类的方法上编写@Override,
关于多态
关于多态的优势与劣势
优势:在方法中,以父类为参数,可以接受所有的子类
劣势:使用多态的时候,往往不能调用子类的独有方法
包:
包一般是指软件包,就是包含一堆Java文件的包,在同一个包中,引用其他的类是不需要其他操作,之间编写就行,但是如果需要用到其他包中的类,就要进行导包操作(import)
final关键字
修饰方法:该方法是最终方法,不可被重写
修饰类:该类是最终类,不可被继承
修饰变量:变为常量,不可修改
权限修饰符
接口:
关于在jdk8之后出现的三种接口新方法
这三种方法加强了接口的功能,以后在编写一个子类的时候就不需要重写方法了
接口的多继承
多接口机制主要是为了子类在继承时的便利
注意事项
内部类
内部类就是定义在类中的类
关于成员内部类的创建方法
静态内部类
匿名内部类
匿名内部类本质上就是一个子类,编译器在编译的时候也会创建出一个子类对象