java笔记汇总
it is just my personal learning notes
# 1序言
回想自从系统学完C语言后,很少在系统学一门编程语言,python听得时候天天摆烂,以至于学完了还是一团浆糊,直到大二开始在leetcode刷题才有所深入了解,看来学习还是得付诸于时间才行。
正好这段时间在经营博客,有事没事往上面扔点东西,挺好的
2 java基本内容
2.1 简介
官方白皮书给出了如下关键字:简单性(接近C++)、面向对象(支持多重继承)、分布式、健壮性(优秀的指针模型)、安全性(复杂的安全模型)、体系结构中立(Java虚拟机)、可移植性(众多平台独立的Java库)、解释型(轻量的编译过程)、高性能(即时编译器)、多线程、动态性。
2.2 java的程序结构
java程序是以类为单位的,类则是一种自定义数据结构(类似于C中的结构体struct)。上面的程序包含了一个public类型的class(类),Hello是这个类的类名,这名称需和文件名同名。和C语言一样,Java也是大小写敏感的。习惯上将类名的每个单词首字母大写。
这个类中包含了一个main方法(也就是函数),作为这个Java程序的运行起点。这个方法中包含了该程序的所有逻辑,和C非常相似。
2.3数据类型
java跟c/c++一样,数据元素有不同的数据类型
整型:byte(1字节),short(2个字节),int(4个字节),long(8个字节)
浮点类型:float(4字节),double(8字节)
字符类型 char
布尔类型 boolean
2.4输入输出
这点我认为java比较繁琐
首先头文件
1 |
|
输入输出
1 |
|
2.5 流程控制
流程控制
Java中也有块(block)的概念。大多数内容都和C一致,除了嵌套的块中不能声明重名变量。下面说一下流程控制语句:
if-else if-else 和C一样
while/do-while 和C一样
for 和C一样。不过添加了一种for each循环
switch 和C一样。不过从Java SE 7 开始,case标签可以是字符串字面量
break 后面可以带标签,用法和C中的goto一样。不过只能跳出语句块而不能跳入
continue 和C一样
2.6 高精度算法(大数值)
这个是一个可以说说的话题,还记着我大一下有门程序设计课,大作业就是完成各种常见的数据结构,其中就有一个高精度算法的C语言实现,但当时gpt水水就完事了,内在逻辑一点不清楚,看acwing的时候,惊奇听人说python一行就完事儿。
1 |
|
注意这里是分行输入 看来以后还得写篇python
而java的实现
1 |
|
2.7 数组
这个东西还挺烦人,刚学的时候一直记不住
1 |
|