>IDEA
**快捷键:psvm 创建main方法**
sout 打印命令
IDEA优化
单行注释// 多行注释/* */
文档注释/** *@Author *@Description */
标识符:类名,变量名,方法名,以(a-z)(A-Z)($)(_)开头,首字母之后可以任意(a-z)(A-Z)(0-9)($)(_)组合
关键字 public class static void
java新建的类名不能是关键词
java强类型语言,区分大小写,所有变量必须先定义才能使用
整数四种表示类型:byte short int(最常用) long(要在数字后面加个L)
小数:浮点型 float(在数字后面加个F) double()
字符 char(代表一个字符)
字符串 String String不是关键字,是一个类
布尔值 boolean flag = true
引用类型:类,接口,数组 String是引用类型
整数拓展:二进制0b 十进制 八进制0 十六进制0x
浮点数拓展:BigDecimal
字符拓展:强制转换,将字符转化为数字 char mm="a"; System.out.println((int)mm);
强制转换:(类型)变量名 高--低
自动转换:低--高 byte>short>char>int>long>float>double
不能对布尔进行转换
变量作用域:类变量,实例变量,局部变量
只在一个类里面,方法的外面 static int mm = 1; 可以直接引用//类变量
只在一个类里面,方法的外面;可以不赋值,会有默认值 int mm = 1; 需要引用new 类名()来引用 //实例变量
只在一个方法里定义和使用 int mm = 1; //局部变量
常量final
修饰符,不存在先后顺序
三元运算符 X?Y:Z
Scanner对象:获取终端输入
Scanner scanner =new Scanner(System.in);
if (scanner.hasNext()){
System.out.println(scanner.next());
}
scanner.close();
next和nextLine nextLine用得较多
java if(a==b){} python if a==b: shell if [[ $a == $b ]];then
m=m+1 java m++ python m+=1 shell m++
if选择结构 if(){} else if(){} else{}
switch选择结构 switch(){ case A:语句; default:语句 } break; case穿透现象
while循环结构 while(){} while(true){}
do while循环 do{}while(){}
for循环 for(初始化;布尔表达式;更新){} 快捷键100.for
死循环for(;;){}
java for(int x:numbers) python for x in numbers
方法:public static int add(int a,int b){ return a+b }
值传递(java)和引用传递
方法的重载
javac .java文件生成.class文件 java .class文件可以直接执行.class
public static void main(String[] args)上面,args是一个数组,可以通过命令行传入参数获取,args.length数组长度
可变参数,不定项参数 public void test(int... i){} ...代表i是一个可变参数,只能放在最后面
递归
数组:相同类型的有序集合,每一个数据是数组元素
类型名[] 变量名; or 类型名 变量名[]; 使用new来创建数组
int[] nums = new int[10];可以存放10个int类型的数字
数组对象保存在堆中
多维数组 int[][] array = {{1,2},{3,4},5,6}
数组工具类Arrays.toString(a) 可以打印整个数组
Arrays.sort(a) 数组升序排序
面向对象编程
public String sayhello(){ return "hello.world"; } 定义的方法是String类型,就需要返回字符串
public void sayhello(){ return; } 定义的方法是void类型,返回空
静态方法 static 在其他的java.class可以直接调用
非静态方法 在其他的java.class调用,需要实例化这个类new
一个.java文件里面只能有一个public class类,但是可以有多个class类
创建一个类对象, new 一个类()
类中方法指代对象本身 java this python self
构造器
在一个类里面, 定义一个有参构造之前必须定义一个无参构造
new本质:在调用构造器
方法中,属性私有 private int i d
继承extends
java类中只有单继承,没有多继承 public class Student extends Person
四个修饰符:public protected default private
重写都是方法的重写,和属性无关
重写@Override 需要有继承关系,非静态方法会被重写,静态方法不会被重写 ,修饰符只能是public,不能是private
多态:是方法的多态,属性没有多态
static,final,private不能重写
用static定义方法,是全局的方法,不需要new。用static定义变量,可以获取类变量