读书笔记-Java基本程序设计结构

前言

Android写着写着突然觉得自己java基础好差 脑子一热就打算复习一次java了 之前没什么基础看的《java开发实战经典 》可以说对新手是挺友好的 前段时间刚好趁着当当打折入了本《java核心技术卷I》 看起来觉得比之前的更有深度 也更加有趣些 为了加深自己的印象 就想来写一些笔记来记录一下

命名规范

命名采用驼峰命名法

类名(大写开头 大驼峰) 变量名和方法名(小驼峰) 常量名(全大写)

注释

注释不难 就分为单行注释 多行注释和文档注释

不过需要注意注释时因为有转义字符而导致混乱 从而出错

数据类型

java中的基本数据类型分为4个整型 2个浮点型 1个字符类型和1个表示真值的boolean类型

类型 存储需求 取值范围
int 4字节(32位) -2^32~2^31
short 2字节 -2^16~2^15
long 8字节 -2^64~2^63
byte 1字节 -2^8~2^7
float 4字节 -2^32~2^31
double 8字节 -2^64~2^63
char 2字节 英文字符占2字节,中文字符根据编码不同
boolean 1字节 true or false

1字节=8位

在表示100w时可以使用1_000_000来表示使易于阅读

long型数据后要加L

二进制前缀为0b(java 7后才出现的语法)

十六进制前缀为0x

八进制前缀为0

float型数据要加后缀F

用于表示溢出或者出错情况的三个特殊的浮点数值:Double.POSTIVE_INFINITY(正无穷大) Double.NEGATIVE_INFINITY(负无穷大) Double.NaN(不是一个数字) 用于判断x是否为这三种情况时应用例如Double.isNaN(x)这样的语法

转义序列 名称
\b 退格
\t 制表
\n 换行
\r 回车
\" 双引号
\' 单引号
\ 反斜杆

与C和C++不同 java中表示真假只能用ture或者false表示 不能用0或者非0来表示

变量和常量

变量初始化
int a = 1;
复制代码
int a;
a = 1;
复制代码

上面两段代码效果相同

常量要用关键字final来表示 需要全局使用时在前面加个static即可

补充:$尽管在java中是个合法字符 但由于其只用在Java编译器或其他工具生成的名字中 因此在代码不使用该字符

java中的常量和c++和c中的const以及宏定义不同 只能用final来表示

运算符

当参与运算的操作数全为整型时就为整数运算 否则即为浮点数运算 例如:15 / 2 = 7; 15.0 / 2 = 7.5

取模运算时操作数只能为整数(我就记着整数求余就没错过了)

strictfp关键字

进行严格的浮点计算

Math类中包含着各种我们所需要的数学运算函数

结合赋值和运算符

x = x + 4x += 4的效果是一样的

自增(减)运算符

a++ a-- ++a --a(注意是先执行语句 还是先增减就好了)

关系运算符

&& & || |(与 或 逻辑与 逻辑或也不难)

位运算符

不怎么用的到 看了老是忘 用到了再看吧

运算符优先级

和学C的时候一样都没故意去记 一般都可以用括号代替 还更易于阅读

枚举类型

例子 给出服装的尺寸

enum Size{SMALL,MEDIUM,LARGE};
Size s = Size.MEDIUM;
复制代码

类型转换

数据类型的转换有可能会丢失精度 还有可能会溢出导致转换后的值不是自己想要的了 因此强转要谨慎

类型转换分为自动类型转换和强制类型转换

自动类型转换

在运算时 如果操作数之间的数据类型不同 系统会自动将其转换为同种类型的数据 然后再进行计算

强制类型转换

例如将double类型强制转换为int类型

double a =9.99;
System.out.println((int)a);
复制代码

字符串

字符串不可以被修改

基本使用
String a = "Hello";
复制代码
子串
String a = "Hello";
String s = a.substring(0,3);
//s的值即为"Hel" 长度位3-0=3
复制代码
拼接

两个字符串的拼接太简单了 就不说了

当一个字符串和非字符串进行拼接时,后者会被转换成字符串

如果把多个字符串放在一起可以使用静态join方法

检测字符串是否相等

一般使用equals方法 而==只能判断字符串是否在同一个位置

如果要忽略大小写就使用equalsIgnoreCase方法

检验某一字符串是否为空

0 == a.length()和a.equals("")

不过String还可以存放null的值

检测String的值是否为null使用a==null就可以了

字符串的构建

通过StringBuilder来实现 通过append来添加部分内容 最后通过toString来构建字符串

了解码点与代码单元和字符串的关系
了解一些基本的String API

输入输出

读取输入

还有一个Console类也可以实现输入输出 不过没有Scanner方便

这里通过Scanner来实现

Scanner in = new Scanner(System.in);
String name = in.nextLine();//以行为分隔符
String sex = in.next();//以空格为分隔符
String num = in.nextInt();//读取一个整数
复制代码
格式化输出

大部分和C语言中的没什么区别 格式说明语法看了记不住 用了不懂再看吧

System.out.print();//正常输出
System.out.println();//自动换行输出
复制代码
文件输入输出
Scanner in =new Scanner(filePath,"UTF-8");//输入
PrintWriter out = new PrintWriter(filePath,"UTF-8");//输出
复制代码

由于输入输出又可能出现异常 因此要加上一个throw IOExpection

控制流程

就是由{}括起来的部分就叫一个块

条件语句 循环语句 中断控制流程语句

语法不怎么难就不说了

大数值

BigInteger(可以实现任意精度的整型运算)和BigDecimal(可以进行任意精度的浮点型运算)

使用valueOf方法就可以把普通数值转换成大数值了

不过就是运算时不能使用运算符进行计算 而要使用add multiply等函数来进行运算了

数组

定义一个数组
int[] a = new int[100];//两种方法都可以实现
int a[] =  new int[100];//我更习惯第一种
复制代码

一般数组定义完后都会有默认值一般为0,null,false啥的

遍历输入或者输出的时候一般使用foreach

使用数组的时候要注意数组越界的问题

java中允许数组长度为0 但是和null不一样

数组初始化和匿名数组
new int[]{111,222,333};//匿名数组
int[] a={2233,443,23};//数组初始化 可以在不创建新变量的情况下重新定义一个数组
复制代码
数组拷贝

使用copyOf()方法来实现 其第一个参数为旧数组 第二个参数为新数组的长度

命令行参数

即main方法里出现的String[] args数组

数组排序

使用sort方法即可实现

多维数组和不规则数组

用的不多 用到了再来看

转载于:https://juejin.im/post/5cf9edf3e51d4555e372a5bc

猜你喜欢

转载自blog.csdn.net/weixin_34124651/article/details/91458710