2022.01.20 周四 多云


一、Java基础

1. 面向对象编程的三个基本特征

封装:封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。

继承:一种类的重用机制,子类继承自父类(java中用extends关键字表示继承)。子类继承了父类的实例变量和方法,子类也可以修改或新增方法。(组合是指在新类中创建已有类的对象)

多态:实现方式是父类引用指向子类对象。

2. java基本类型

类型名称        占比特位数        表示范围           

byte                8                        -128~127(8位有一个符号位,所以是2^7)

short              16

int                  32

long               64

float               32

double           64

char              16

boolean         8

(1)浮点数值不适合用于无法接受舍入误差的金融计算,比如System.out.println(2.0-1.1)将打印出0.8999999999999999,此时可以用BigDecimal来计算。

(2)char类型可以表示\u0000到\uFFFF的十六进制值,Unicode转义序列会在解析代码之前得到处理。

(3)在java中,char类型描述了UTF-16编码中的一个代码单元。强烈建议不要在程序中使用char类型。

(4)java11提供了String类的repeat方法,比如"Hello".repeate(3),得到的是"HelloHelloHello"。

(5)java的String字符串大致类似于char*指针。

(6)java9中,只包含单字节代码单元的字符串使用byte数组实现,所有其他字符串使用char数组。

3. 对象包装器(Integer、Long等)和自动装箱

(1)包装器是final的,不可派生子类。

(2)var list = new ArrayList 集合的类型参数不允许使用基本类型。

(3)list.add(3) 自动装箱;int n = list.get(i) 自动拆箱。

(4)自动装箱规范要求boolean, byte, char<=127,介于-128和127之间的short和int被包装到固定对象中。举例:Integer a=100; Integer b=100,则a==b结果为true。

4. 输入输出(控制台)

(1)System.out.print和System.out.println的区别。后者可以自动换行;

(2)Scanner sc = new Scanner(System.in); String line = sc.nextLine(),表示读入一行;int a = sc.nextInt(),表示读入一个整数;

(3)从jdk1.5开始沿用了c的printf函数,System.out.printf();

5. 其他

(1)switch语句的case分支末尾要记住break,否则会继续执行下一个分支。

(2)case标签可以是char, byte, short, int, 也可以是枚举常量。从Java7开始还支持字符串字面量,比如case "hello"。

(3)数组常用的方法:Arrays.sort() 优化的快排;Arrays.binarySearch()二分查找。  

二、C基础

1.  scanf以空格作为输入结束标志,gets以回车作为输入结束。

2. strcpy(a, b)表示把字符数组b中字符串连同串结束标志"\0"拷贝到字符数组a中,b也可以是字符串常量比如"hello"。注意,a的长度要足够。

3. strcmp(a, b)按照ASCII码顺序比较字符数组a, b,返回int类型,相同返回0。

4. strlen(a)测试字符串实际长度(不包含字符串结束标志)。

5. 结构体三种写法

struct student
{
    int number;
    char name[10];
    float mark[4];
};
struct student std1, std2;
--------------------------------------
struct student
{
    ......
}std1, std2;
--------------------------------------
struct
{
    ......
}std1, std2;

6. C语言中数组的元素可以为结构体,称为结构体数组。

相关