Core Java第二章知识点总结(一)
内容预览
注释
包
jar命令
标识符
变量与字面值
局部变量
表达式与运算符
String字符串初探
Java的注释
(说明性质的文字增强程序的可读性不被编译器编译 直接忽略)
任意一种语言都支持单行、多行注释
Java注释的分类:
1.单行注释(//)
a)可以书写在任何位置
b)反斜杠后写一行描述性文字
2.多行注释(/* */)
a)不允许嵌套
3.javadoc注释(/** */)实现注释和代码分离
a)只能写在类、方法上面,不能写在方法内部
b)区别:只给用户看注释,不给用户看源代码
Java:
企业级软件 ERP CRM
行业软件 eg:医院 只给软件使用权 不需要给用户看源代码
c)javadoc命令可以抽取注释生成html文件
d)javadoc命令格式
javadoc –d doc HelloWorld.java
-d:目录(directory)
doc:特定文件夹(html文件放在doc里面)
用户查看index.html文件
e)生成javadoc文件,必须是公共类
格式:
/**
*类名:
*作者:
*开发日期:
*作用:
*修复日期:
*原因:
*/
4.总结Java的注释
a)注释的3种写法
b)javadoc注释的作用
c)JavaSE API文档Application Interface
包
1.包的概念(解决类名冲突类似于操作系统的文件夹但实际上不是)
2.包的创建与package关键字
带有包的编译 javac –d .HelloWorld.java
java p1.HelloWorld
a)写在类代码的第一行,大小写区分
b)不一定要写,极大程度解决类名命名冲突
c)属性从属于包------>全限定名(包名+类名)
3.子包的概念(文件夹的嵌套)
a)javac –d . HelloWorld.java
b)一个包里可以有多个类(不要同名)
c)不能够手工创建文件夹充当包
4.带有包的使用和import语句
a)p1.p2.HelloWorld hw;声明时全限定名
带包时,按层级结构,严格书写,最深层
b)相同包下的类,不用写包
c)使用的类多次使用 import
import p1.p2.HelloWorld;预先声明
import p1.p2.*; 所有的类
5.JavaSE中的包
a)java lang(System,String)java.lang中的包不用import 直接使用
b)java.util
c)java.sql
d)java.io
e)后续学习其中的类
6.java包的命名要求
a)不要以java开头
b)建议:以公司的域名反写作为java类的包
c)一般包名全部小写 package com.oralce.项目.模块
d)自己写的类可以带*,但Java API里的类用哪个导入哪个
jar命令
1.jar包(保存、压缩.class文件 文件的压缩格式)
防止病毒感染 传输速率快
tar: Linux
zip: Windows、Linux
rar:Windows
a)java cvf test.jar HelloWorld.class
b)java cvf test.jarHelloWorld.class Welcome.class(多个类以空格区分)
c)java cvf test.jar p1(包名 最外层)
d)cvf:
c:create 创建
v:view 显示创建信息
f:创建文件
2.第三方jar
现在的软件是大规模、多人配合;不是单打独斗。
别的程序员写的,不必关心实现,只知道调用。
设置CLASSPATH
a)oracle_common.jar
b)CLASSPATH
.;D:\ oracle_common.jar
c)oracle_common.jar的使用
标识符
1.标识符的概念
a)合法字符(类、变量、包)
字母、数字、下划线、货币符号($) @ # !
数字不能应用首字母
b)大小写敏感
HelloWorld !=helloworld
c)Java语法关键字
java中有一些字符用作特殊用途称之为关键字
关键字不能用于标识符
如:class public staticvoid package import
2.Java语言中的关键字(关键字、保留字、boolean 小写,不能用于标识符)
a)……
b)Java语言保留但未使用的关键字:gotoconst(C/C++)
c)严格来说true和false不是关键字,他们是布尔数据类型的值
3.标识符命名习惯(养成良好的习惯----->约定俗成的习惯)
a)望文生义
b)推荐命名规则
i.包名:全部小写,如com.oraclesdp
ii.类名:每个单词首字母大写如:HelloWorld
iii.接口名:每个单词首字母大写如:HelloInterface
iv.变量/方法名:第一个单词小写后面每一个单词大写如:score showUserInfo(驼峰命名法)
v.常量:每个单词都大写多个单词之间以下划线连接如:REQUEST_CODE
变量与字面值
1.变量概念(在内存中开辟空间,存储数据,并取名)
a)程序运行在内存中
b)程序的核心是处理数据
c)在内存中存储数据的单元(容器)
d)内存中:内存地址------>不好记------>取别名------>变量
2.变量的创建
int i;
int i, j;
习惯 int i; int j;
a)强数据类型编程语言定义变量时指定其数据类型
b)满足不同需要(单人间、双人间、总统套房)
3.变量的赋值(在空间中存储数据)
a)int i; i = 10;
b)int i = 10;(创建与赋值整合)
4.变量的字面值
a)变量可存储的合法的数据
b)int i; i = 10; i = 20.1;
5.注意几点:
a)声明一个变量
b)对变量进行赋值
c)才能使用该变量
d)实例变量和局部变量,局部变量必须先初始化才能使用,实例变量不必初始化也可使用。
变量的数据类型
1.基本的数据类型(8种)
a)整数类型 byte short int long
b)浮点数类型 float double
c)布尔类型 boolean
d)字符类型 char
2.对象数据类型
a)String
b)System
c)Student
3.byte(1个字节------>8位)
a)取值范围 -128-----127 -2^7-------2^7 - 1
4.short(2个字节------>16位)
a)取值范围 -32767-----32768 -2^15-------2^15 - 1
5.int(4个字节------>32位)
a)取值范围 -2147483648-----2147483647 -2^31-------2^31 - 1
6.long(8个字节------>64位)
a)取值范围…… -2^63------2^64 – 1
b)long l = 100l;
c)long l = 100L;
d)字面值(必须加L/l)------>一般大写L,因为小写l像数字1
7.整数的8进制表示形式(逢8进1 以0开头)
a)byte b = 012;
b)long l = 012L;
8.整数的16进制表示形式(逢16进1 以0x开头)
a)byte b = 0x41;
b)long l = 0x41L;
9.float(4个字节------>32位 单精度浮点数)
a)float b = 12.2f;
b)float b = 12.2F;
10.double (8个字节------>64位 双精度浮点数)
a)double b = 12.3;(可加D/d,亦可不加)
11.科学计数法(8个字节------>64位)
a)float b = 2.667e13f;------>2.667 x 10^13 f
b)double d = 1.57e-3; ------>1.57x 10^-3
12.浮点数丢失精度问题
a)double d = 2.0 – 1.1;println(d); d = 2.8999999…;
b)表达小数时有可能丢失
13.boolean(一个字节)真假 存在与否
a)boolean 字面值true false
b)boolean 字面值不可以用0或者1C/C++(true/false 1/0)
c)如:boolean isChecked = true;
14.char(2个字节------>16位)
a)char a = ‘A’;
b)unicode码表示------>和字母一一对应 如:char a = ‘\u0041’;4位16进制数表示
c)char a = 65;翻译成对应的unicode码 计算机只认识数字 数字------>表示字符
15.转义字符(特殊含义字符)
a)‘\n’:换行
b)‘\r’:回车
c)‘\t’:退格,相当于TAB键
d)‘\\’:\
e)‘\’’:’
f)‘\’’’:’’
g)Windows:换行=回车
h)其他操作系统:不一定
类型转换
1.类型转换(存储空间较小的数据可以赋值给存储空间大的,反之不行)
a)int i = 10;
b)long l = i;
c)int b = 10;
d)byte c = b;//错误
2.强制类型转换(大的给小产生丢失精度问题)
a)int b = 10;
b)byte c = (byte)b;
c)byte b = (byte)128;//丢失精度 -128
3.自动类型提升(多变量运算运算结果类型有提升伴随强制类型转换)
a)byte b = 10;
b)byte c = 20;
c)byte d = b + c;//错误,int d
d)byte d = (byte)b + c;
4.自动类型提升结论
a)A B 其中有double,运算结果为double
b)A B 其中有float,运算结果为float
c)A B 其中有long,运算结果为long
d)其余情况为int
5.思考
a)char c = ‘A’;
b)char b = c + 1;//错误
c)char b = (char)c + 1;//正确