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<Integer> 集合的类型参数不允许使用基本类型。
(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"。
二、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语言中数组的元素可以为结构体,称为结构体数组。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构