一.java学习笔记 第三章数据类型
标识符:
标识符可以标识:类名,方法名,变量名,接口名,常量名…
标识符:凡是程序员自己有权利命名的单词都是标识符
标识符不能以数字开头,标识符不能有空格,关键字不能做标识符 java源文件名为数字时,他不能定义public类;
标识符区别大小写 对于类名来讲,Java一个源文件同时出现A类,a类 谁在前先生成谁
命名规范:见名知意,类名和接口名单词首字母大写,变量名和方法名首字母小写后面首字母大写,常量名全大写单词之间下划线
关键词(全部小写)
javadoc提取帮助文档要有特殊格式
JVM来给不同数据类型分配空间
比特位是二进制位 1个比特位就是1个0或1 1个字节 = 8个比特位(bit)
int i = 1; 00000000 00000000 00000000 00000001内存中表示
在同一个域中变量名不能重名,可以重新赋值
方法体内声明的变量:局部变量;
方法体外,类体内声明的变量:成员变量;
基本数据类型: int long short byte float double boolean char
引用数据类型: 字符串型 String 除了基本数据类型之外,剩下的都是引用数据类型
boolean 1字节 char 2字节 float 4字节
char:0 ~ 65535
short:-32768 ~ 32767
常见ASCII(字符转换为二进制)码:‘a’ -> 97 ‘A’ -> 65 ‘0’ -> 48
unicode统一了全球所有的文字,支持所有文字(utf8 utf16 utf32) java使用的字符编码
ISO-8859-1(latin-1) GB2312 GBK GB18030 Big5
汉字占用2字节 char刚好可以容纳一个汉字
Java转义字符:
1.’\t’ ‘\n’ ‘’’(表示一个普通的 ’ ) ‘\’(表示一个普通的 \ )
2.输出需要带双引号的字符串时:1.字符串的双引号需要改为中文双引号
2.单纯双引号表示方法 “”"
3.\u 表示后面的是一个字符的unicode编码 例如’\u4e2d’ -> ‘中’
整型数据:
1.重点:在任何情况下,整数型的"字面量/数据"默认被当作int类型处理
当"整数字面量"被当作long类型来处理,需要在"字面量"后添加L
2.自动类型转换:小容量转换成大容量 例如 long b = 200; 200本身默认为int 将Int型转换为long型
当long b = 200L;不存在自动类型转换 200L被默认为long类型
对于过大的整数:例如:long c = 2147483648;数会被默认为int型 但数已经超过了范围 需要在后加上L 转换为long
3.强制类型转换:大容量转换成小容量 (需要转换成的类型)数 可能会损失精度
大字节类型数在进行强转时 会损失前几位的字节 剩下的字节转化成整数就是输出的数
4.重点:当整数型字面量没有超出byte short的取值范围则这个整数型字面量可以直接赋值给byte short类型的变量
整数直接赋值给char:当整数未超过char的取值范围时,会被自动转换成数字对应的字符
5.计算机只能识别二级制 在底层存储数据的时候,一律存储的是二进制补码的形式
对于负数而言:反码:符号位不变,其他位取反; 补码:反码+1; 正数是一致的
6.多种数据类型做混合运算时,结果是"最大容量"对应的数据类型
特殊:byte char short做结合运算的时候,各自先转换成int在做运算,结果为int
浮点型数据:
1.更高的精度:java.math.BigDecimal(引用数据类型)
2.float和double存储数据都是存储的近似值
3.float的"容量"大于long 任意一个浮点型都比整型空间大
4.java中,任意一个浮点型数据默认当作double来处理 如需转成float 在其后加上F/f
例如:float f = 3.14F;float f = (float)3.14;
5.当浮点型与整型混合运算时:将与需要结果类型不同的数强制转换; 将结果(整个式子)强行转换
布尔型数据:(只有true flase)
1.表示逻辑判断 输出判断表达式结果时 输出布尔型数据
例如:int a = 10;int b = 20; System.out.println(a>b); 结果输出flase;
2.除了布尔类型数据外,其余都可以进行数据转换
二.力扣习题
题目描述:给一个仅包含大小写字母和空格的字符串 返回最后一个单词的长度 不存在最后一个单词请返回0
思路:从后往前遍历 直到遇到大小写字母后设置一个变量len len++;直到遇到空格返回len值
int lengthOfLastWord(char * s){
int l;
int i;
int res = 0;
if(NULL == s)
return 0;
l = strlen(s);
for(i = l-1; i >=0; i--)
{
if(isalpha(s[i]))
res++;
else
if(res)
break;
}
return res;
}