2021.7.17
注释:ctrl+
打印:System.out.println( +“ ” );
输入:Scanner scanner=new Scanner(System.in);
int a=scanner.nextLine();
布尔类型(整型,浮点型一类的):只有true和flase两种
运算符号:&相与 | 相或 ~取反 ^异或
位移运算:<< >>
注:对于int类型,第二个操作符先对2^n取模,余数是实际移动的位数
if语句:
if if
if else if
else else
switch语句:
switch(express){
case value1:
……;
break;
case value2:
……;
break;
default:
……;
}
while do-while for break 语句
cotinue:跳过当前循环
初始化数组 :int a[]; a=new int[n];
int a[]=new int[n];
int a[5]={1,2,3,4,5};
ps: int a[]=new int [5];a[]={1,2,3,4,5}; //错误
数组可以理解为地址
矩阵的乘法:
一、
1、用A的第1行各个数与B的第1列各个数对应相乘后加起来,就是乘法结果中第1行第1列的数;
2、用A的第1行各个数与B的第2列各个数对应相乘后加起来,就是乘法结果中第1行第2列的数;
3、用A的第1行各个数与B的第3列各个数对应相乘后加起来,就是乘法结果中第1行第3列的数;
二、
1、用A的第2行各个数与B的第1列各个数对应相乘后加起来,就是乘法结果中第2行第1列的数;
2、用A的第2行各个数与B的第2列各个数对应相乘后加起来,就是乘法结果中第2行第2列的数;
3、用A的第2行各个数与B的第3列各个数对应相乘后加起来,就是乘法结果中第2行第3列的数;
A有i行B有j列,C有i行j列
矩阵乘法程序:
for(i=0;i<a[].length;i++)
{
tmp=0;
for(k=0;k<b[0].length;k++)
{
for(j=0;j<b[0].length;j++)
tmp+=a[i][j]*b[j][k];
}
r[i][k]=temp;
}
Arrays类:
Arrays.sort(array):对数组array进行排序;
display(array):打印出数组array;
int index=Arrays.binarySeach(array,39):找出数组array中39的位置
ps:如果key在数组中,则返回搜索值的索引;否则返回-1(key小于数组中的任意一个元素)或者”-“(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素索引。
Arrays.fill(array,0,3,-1):将 array[0,3)换为-1;
*****
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
String[] arrStrings={"计算机",“长江”,“通信”,“数学”};
Arrays.sort(arrStrings); ------------排序不成功,Array.sort只能进行数值和字母排序;
Comparator comparator=Collator.getInstance(java.util.Local.CHINA);----------------将汉字转化为拼音
Arrays.sort(arrStrings,comparator);
2021.7.18
抽象类的特点:抽象类和抽象方法必须用abstract关键词修饰
public abstract class 类名{}
public abstract void eat()
抽象类不一定有抽象方法(这样没啥意义),有抽象方法一定是抽象类
抽象类不能实例化,但是可以在派生子类中实例化
抽象类的子类
要么重写抽象类中所有的抽象方法
要么它也是抽象类
get和set:get变量名(),用于获取成员变量的值,用public修饰
set变量名(参数),用于设置成员变量的值
2021.7.20
面向对象的特征:
1.封装:将一种操作和操作涉及的数据捆绑在一起,使其免受外界的干扰和误用
2.继承:指一个新的类继承原有类的基本特征,并增加新的特性。可间接继承。子类extends父类。
3.多态性:指类中同一名称(名称相同就行,参数类型不考虑)的行为可以有多种不同的功能,或者相同的接口有多中实现方法
其中包括方法重载和方法重写
类:
关键字:class
地位:Java中最基本的元素
类体:包括定义类的成员变量和方法
反射: 获取类的常用方法:
Class<?> classBook = Class.forName("com.jourwon.reflect.Book");
获取构造方法:
getConstructor(Class…<?> parameterTypes) 获得该类中与参数类型匹配的公有构造方法
getConstructors() 获得该类的所有公有构造方法
getDeclaredConstructor(Class…<?> parameterTypes) 获得该类中与参数类型匹配的构造方法
getDeclaredConstructors() 获得该类所有构造方法
2021.7.23
判断周几的公式:
int week = (year-1+(year-1)/4-(year-1)/100+(year-1)/400+days)%7;
split切割字符串:
String s = string-string
String【】 s1 = s.split("-")
for(String s2 : s1)
System.out.println(s2);
--------------
string
string
2021.7.26
String类的使用方法:
连接:String1.concat(String2)
提取指定字符:String1.charAt(i)
从i开始提取str2的j个字符给str1:str1=new String(str2 , i, j)
比较是否相等:str1.equals(str2)
str1.equalIgnore(str2)忽略大小写
str1.startsWith(str2):判断前缀是否有str2
.ends 后缀
str1.compareTo(str2):比较大小
int i = str1.indexOf(‘char’):判断字符char在字符串str1中排第几个
.lastIndexOf :从后向前判断
str.substring(i):从第i个截取后面的字符串
str1.replace(str2,str3):str3替换str1中的str2
StringBuffer:
添加:sbf.append(str)
插入:sbf.insert(i,str):第i个后插入
删除:sbf.delete(i,j):删除(i-j)
替换:sbf.replac(i,j,str):(i-j)替换为str