Java 笔记


Java命名习惯:
类名:首字母大写;
方法,变量首字母小写,
&&运算 是短路运算,如果第一个条件是false 则不会进行第二个条件的判断
“”"…""": 表示多行字符串 这是在C#中没有的
定义数组:
int [] 变量名=new int[]; int [] 变量名=new int []{....}; int [] 变量名={....};
Scanner next(); 以空格为分割,一行只读取空格之前的字符
nextLine() 读取整个一行的字符串 输入回车结束

可变参数: 可变参数只能放在众多参数后面使用 …变量名 例如 public void get(Striing name,int age,String …sex);
使用可变参数,可以同时传递多个参数,可变参数当作数组处理

构造方法:
构造方法的名字和类名相同,但没有返回值 例如 public Person(参数…)
任何一个类都有默认的构造方法

继承

		使用 extends 关键字 ,例如 public class Student extends Person{};  Student 继承自 Person
		使用 final 关键字,表示类不可继承  final 还可以用到字段,方法中,这样的方法和字段不可被复写,但是可以被继承
		使用 protected 修饰符 使子类可以访问父类的方法和字段
		一个.java文件只能有一个public 修饰的类,可以有多个非public修饰的类,此类可以嵌套在public类中,也可以不嵌入

super()的用法

第一:用于调用父类的字段或方法
第二:用于调用父类的构造方法

方法重载:

方法复写:

		使用 @override 可以让编译器帮助检查是否进行正确的复写,但 @override 并不是必须的
		使用 private 修饰的方法不能进行复写 (public,protected 修饰符,都可进行复写)

多态:
就是调用的状态不一定,需要在调用的时候在确定

抽象类:

		使用 abstract 关键字 此类无法被实例化,抽象类的存在是为了让别人继承	制定一种规范让子类实现,子类必须重写父类的全部方法

接口:

		使用 interface 关键字 如果一个抽象类里面连一个字段也没有,全部是抽象方法,则可以定义为接口 
		接口里面的方法可以省略public abstract 修饰符
		当一个接口需要具体实现的时候需要使用 implements 关键字 例如 class Student implement Person   可以理解为 Student 继承自 Person 接口
		一个类只能继承一个类,但是一个类可以实现多个接口 例如 public class Student implement Person,Object{} //实现两个interface
		接口可以继承另一个接口使用 extends 关键字
		在接口中定义defaul方法,子类中不需要一一复写,在需要的地方可以复写
		如果接口中有字段  则必须是  static final 字段 通常这样的字段自动省略 static final

静态字段:
所有的实例字段共享同一个空间,访问静态字段最好使用 类名.字段 去访问

静态方法:
静态方法也是通过类名去访问 使用 类名.方法标签 去访问 静态方法只能访问静态字段,而不能访问实例字段

导入包:
import 包名

作用域:
如果一个类没有 public ,private 修饰,则在一个包内,其他的类都可以访问此类,但是其他的包里的类,不能访问
如果一个方法或字段没有 public,private ,protected 修饰,则在一个包内都可以访问到此方法或字段,但其他的包不能访问到

字符串:

		toUpperCase():把小写字母转换成大写字母
		toLowerCase():把大写字母转换成小写字母
		equals():用于判断两个字符串是否相等  例如 变量名.equals(变量名);
		equalsIgnoreCase(): 和 equals 方法一样 但是比较的时候忽略字母大小写
		indexOf():索引字串开始的位置
		lastIndexOf();索引字串结束的位置
		substring(): 提取字串
		trim():去除字符串首尾的空格;
		isEmpty():字符是否为空字符 例如:“”;
		isBlank(): 字符是否为空白字符 例如 “   ”;
		replace():替换字串  例如  String S="Hello";  S.replace("l","w");//所有的l都替换成w;
													 S.replace("ll","w");//所有的ll串都替换成w;
		split():分割字符串  传入的是正则表达式
		join(): 拼接字符串   例如 String [] arr={"A","B","C"}; String s=String.join("*",arr);//A*B*C 将多个字符串用*连接起来
		charAt(index): 返回字符串中指定位置的字符 

类型转换: String.valueOf(); 把任意类型转换成字符串;
integer.parseInt();把字符串转换成整型
Boolean.parsBoolean();把字符串转换成Boolean型
toCharArray(); 把字符串转换成字符数组 例如 char []ca=“hello”.toCharArray();
String s=new String (ca);把字符数组转换成字符串
字符串转换成基本类型需要用到以上操作

		基本类型之间相互转换只需要显示转换就行 例如  double D=(double)2; 

StringBuilder: 可以实现快速拼接字符串,效率高于”+“ 连字符还可以进行链式操作 例如 StringBuilder Sb=new StringBuilder();
Sb.append(“S”)
.append(“s”)
.append(“d”);
.delete():可以删除字符

包装类: 包装类是引用类型,两个相同的包装类进行比较不能用 ”==“,而要用equals()
所有的的基本类型全部都有包装类,包括 byte int double short long boolean float char
进行赋值推荐是用 Interger n=Integer.valueOf(100);

枚举类型: 使用 enum 关键字 例如 enum Weekday{SUN,MON,TUE,WED,THU,FRI,SAT; };
每一个枚举类型都是一个class
.name() 方法会返回枚举类型的名字 例如 Weekday.SUN.name() //返回值是SUN
.ordinal() 方法返回枚举类型的位置 例如 Weekday.SUN.ordinal() //返回1
给枚举类型添加常量 例如 enum Weekday{SUN(0),MON(1),TUE(2),WED(3),THU(4),FRI(5),SAT(6); }
如果我们想获得枚举类型的常量就需要定义一个枚举类型的常量 例如 enum Weekday {
MON(1), TUE(2), WED(3), THU(4), FRI(5), SAT(6), SUN(0);

																		public final int dayValue;
																	
																		private Weekday(int dayValue) {
																			this.dayValue = dayValue;
																		}

BigInteger: 表示任意大整数 且是不可变类,两个大型整数进行运算 例如: BigInteger i1 = new BigInteger(“1234567890”);
i1.add(大型整数); //两个大型整数相加

BigDecimal: 表示人大小且精准的小数

随机数: Math.random(); 例如 想产生一个a~b内的随机数 int i=a+(int)(Math.random()*b);

异常处理

数组

copy数组两种方法

第一中:利用for循环进行数组复制

第二种:利用java提供的静态方法 arraycopy进行复制

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

其中 src是源数组,srcPos是复制源数组的位置,dest目标数组,destPos复制到目标数组的位置,length 复制的长度

源码示例

public static  void main(String [] ars)
     {
        int [] source= {2,3,4,5};
        int [] t=new int [4];
       System.arraycopy(source, 0, t, 0,4);
       
      for(int i=0;i<4;i++)
          System.out.println(t[i]);
     }

获得当前时间

 int year,month,day;
 Calendar calendar=Calendar.getInstance();
        year=calendar.get(Calendar.YEAR);
        month=calendar.get(Calendar.MONTH);
        day=calendar.get(Calendar.DAY_OF_MONTH);

待续。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

~搬~运~工~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值