JAVA基础中的基础
目录
关键字this指代一个(局部变量) 列:this.name = name
java基础用法
类型
-
int
-
long
-
double
-
boolean(布尔类型),true,false;
-
char
-
final(常量)
-
String(字符串)
var关键字
有些时候,类型的名字太长,写起来比较麻烦
StringBuilder sb = new StringBuilder();》var sb = new StringBuilder();
函数
求平方根可用》 Math.sqrt():
转义字符
-
" 表示字符"
-
' 表示字符'
-
\ 表示字符\
-
\n 表示换行符
-
\r 表示回车符
-
\t 表示Tab
-
\u#### 表示一个Unicode编码的字符
多行字符串
"""..."""(三个引号内都是字符串)
数组
int[] ns = { 68, 79, 91, 85, 62 };
输出&输入
输出:System.out.println();
print()——————》println() 加上ln就会实现换行
输入函数是可以在方法中使用
输入:1.导包import java.tuil.Scanner;
2.创建对象Scanner sc=new Scanner(System.in);
3.获取输入内容int i=sc.nextInt();
数组类型
int[] arr=new int[3];
获取数组的元素数量
数组变量.length
随机数
1.导包import java.tuil.Random;
2.创建对象Random r=new Random();
定义函数
public static void 函数名(类型 变量,类型 变量){ 。。。。。内容 } ##数组遍历 两个明确 1.返回值的类型:void 2.参数:int[] arr
类与对象
类是对象的抽象 对象是类的实体
成员变量和局部变量
封装关键字
关键字privat set与age 通用方法
private int name
set————>public 返回类型
get————>public 赋值类型
关键字StringBuilder
StringBuilder sb = new StringBuilder();
sb.oppend("内容").oppend("内容").oppend("内容");》无限添加
StringBuilder转String------》》String ss = sb.toString加入一个to
sb.reverse()反转
关键字ArrayList<String>
ArrayList<String> line = new ArrayList<String>();
line.remo()>>删除数组元素
line.add()>>添加数组元素
line.remove()>>删除指定索引元素
line.get()>>返回索引元素·
关键字 private>>私有的
被private修饰的变量只能在本类中访问
关键字 final常量修饰符
关键字 static共享变量修饰符
权限修饰符
左移与右移
十进制数转二进制然后在进行(移位)最后在转回十进制
关键字Srting
new 的对象和另一个new 的对象是(不相等的)
而直接赋值的Srting和另一个指向的(地址完全相等)但要内容一样
关键字this
指代一个(局部变量) 列:this.name = name
继承
格式>>puplic class 子类名 (继承)extends 父类名{}
多态
重写方法
父类 a = new 子类 a.变量 = 父类中的变量 访问成员方法>>访问的是子类中的方法
向上转型 父类 (变量a) = new 子类
向下转型=强制转换 子类 (变量b) = (变量a)子类
向下转型错误例子
虽然两个子类都指向父类 但是两个子类之间是没有联系的
抽象类
接口
关键字 implements
类名 implements(实现接口)接口(单词记忆)
- 接口中不能构造方法
- 接口中的成员变量默认被final
- 接口中是不能有非抽象方法的
类与接口的关系
类里面可以继承一个类和多个接口 public class 类名 继承(extends) 祖宗(Object) 链接接口(implements) 接口1,接口2,接口3{}
接口与接口的关系
接口和接口是继承关系: 一个接口可以继承多个或一个接口 public class 接口名 继承(extends) 接口1,接口2,接口3{}
成员内部类
格式 外部类名.内部类名 对象名 = 外部类对象.内部类对象;
范例 外部类名.内部类名 对象名 = new 外部对象名.new 内部对象名;
匿名类
【格式 new 类名(){方法}.方法】——————>>>这是对象调了方法
API
java标准库提供的函数
1.Math关键字
2.System关键字
测试程序的运行时间
1.终止程序
System.exit
2.测试程序的运行时间
long re = System.currentTimeMillis();
long s = 0;
for (int i = 0; i < 1000000000; i++) {
s += i;
}
long rs = System.currentTimeMillis();
long ee = rs - re;
System.out.println(ee+"毫秒");
Objecet关键字
1.子类重构(祖类)的构造方法
@Override
public String toString() {
return "objecet{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
冒泡排序
for (int j = 0; j < arr.length - 1; j++) {
for (int i = 0; i < arr.length - 1 - j; i++) {
int max;
if (arr[i] < arr[i + 1]) { //有第一个和二个进行比较
max = arr[i]; //若第二个大于第一个进入三个杯子转换
arr[i] = arr[i + 1];
arr[i+1] = max;
}
}
}
Arrays关键字
int[] arr = {1, 22, 45, 679, 22, 33, 44, 55, 66};
System.out.println("遍历前" + Arrays.toString(arr));
Arrays.sort(arr);
System.out.println("遍历后" + Arrays.toString(arr));
Integer.valueOf关键字
主要用于类型之间互相转换
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
包装类.MAX_VALUE
Integer i1 = new Integer(100); //已经过时了
System.out.println(i1); //已经过时了
System.out.println("*******************************************");
Integer i3 = Integer.valueOf(900); //装箱操作
System.out.println(i3
int=String互相转换
int a = 100;
String s1 = "" + a;
//int转String类型
String l = String.valueOf(a);
System.out.println(a);
System.out.println("-------------------------");
//String转int类型
String s = "100";
//public static Integer valueOf(String s)
int i = Integer.valueOf(s);
System.out.println(i);
System.out.println("--------------------");
int q = Integer.valueOf(s).intValue();
System.out.println(q);
split(里面是分割符)字符串进行分割
String s = "91 27 46 38 50";
String[] array = s.split(" "); //字符串进行分割
int[] arr = new int[array.length]; //定义数组
for (int i = 0; i < array.length; i++) { //String数组转int数组
arr[i] = Integer.parseInt(array[i]);
}
Arrays.sort(arr); //数组排序
for (int i=0; i<arr.length; i++) {
StringBuilder sb = new StringBuilder();
if (i > arr.length - 1) {
sb.append(arr[i]);
} else{
sb.append(arr[i]).append(" ");
}
String reut = sb.toString();
System.out.print(reut);
}
Date:日期类
1秒 = 1000毫秒
//分配一个 Date对象并对其进行初始化,以便它表示分配的时间,以最接近的毫秒为单位。
Date d = new Date();
System.out.println(d);
long date = 1000 * 60 * 60;
Date d2 = new Date(date);
System.out.println(d2);
//本来应该是 01:00:00结果是09:00:00
//因为东南区我们是
Date d = new Date();
System.out.println(d.getTime()*1.0/1000/60/60/24/365+"年");
//返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数。
long tem = 1000*60*60;
d.setTime(tem);
System.out.println(d);
//设置此 Date对象以表示1970年1月1日00:00:00 GMT之后的 time毫秒的时间点。
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分 ss:秒 S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识 k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区
SimpleDateFormat类
-
用于以区域设置敏感的方式格式化和解析日期
//Format是用于格式化区域设置敏感信息(如日期,消息和数字)的抽象基类。
Date d = new Date();
SimpleDateFormat adf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
System.out.println(d.getTime());//1619517446324
String ss = adf.format(d.getTime());
System.out.println(ss); //2021年04月27日 17时57分26秒
//parse从字符串中解析文本以产生一个 Date 。
String s = "2001-12-12 12:12:21";
SimpleDateFormat adf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
adf2.parse(s);
System.out.println(s);//2001-12-12 12:12:21
Calendar(抽象类)
返回给定日历字段的值
Calendar c = Calendar.getInstance();
System.out.println(c);
int year = c.get(Calendar.YEAR);
int march = c.get(Calendar.MARCH)+1;
int date = c.get(Calendar.DATE);
//get(int field) 返回给定日历字段的值。
System.out.println(year+"年"+march+"月"+date+"日");
//2021年4月29日
c.add(YEAR,-10);//在给定时间字段上添加或减少单个时间单位,而不改变较大的字段
c.set(1987,1,1);//将给定的日历字段设置为给定的值。