黑马程序员-Java 基础知识1. (笔记部分总结)
来源:互联网 发布:淘宝是白号,该怎么升心 编辑:程序博客网 时间:2024/05/16 13:38
这是在我学习Java时整理的。
1.Java 语言的特点:具有跨平台性。
2.class是关键字用于定义表。
3.变量:就是将不确定的数据进行存储。
4.关于配置环境变量: 临时—— set path= 用于配置jdk路径
set classpath=用于配置Java文件路径
固定—— . ;c:\;d:\
5.算术运算符:取余 % 例子:-1%5=-1 1%-5=1 取决于运算符左侧数字
6.输出语句连接符:+ system .out.println(“a=”+a); 结果为 a=a
7.基础语言要素
1)标识符:给类、方法、变量起的名字
A.必须以字母或下划线或 $ 符号开始,其余字符可以是字母、数字、$ 符号和下划线。
B.只能包含两个特殊字符,即下划线 _ 和美元符号 $ 。不允许有任何其他特殊字符。
C.标识符不能包含空格。
D.区分大小写。
2)关键字:只有系统才能用的标识符
注意事项:
true、false、null不是关键字!是字面量。
main不是关键字!但是是一个特殊单词,可以被JVM识别,主函数是固定格式,作为程序的入口。
3)注释:单行注释:// 多行注释:/* ……*/ 文档注释:/**……*/
注意事项:开发中类前、属性前、方法前,必须有文档注视。
8.八种基本数据类型
1)四种整数类型(byte、short、int、long):
byte:8位,用于表示最小数据单位,如文件中数据,-128~127
short:16位,很少用,-32768 ~ 32767
int:32位、最常用,-2^31-1~2^31 (21亿)
long:64位、次常用
注意事项:
int i=5; // 5叫直接量(或字面量),即直接写出的常数。
整数字面量默认都为int类型,所以在定义的long型数据后面加L或l。
小于32位数的变量,都按int结果计算。
强转符比数学运算符优先级高。见常量与变量中的例子。
2)两种浮点数类型(float、double):
float:32位,后缀F或f,1位符号位,8位指数,23位有效尾数。
double:64位,最常用,后缀D或d,1位符号位,11位指数,52位有效尾数。
注意事项:
二进制浮点数:1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)
尾数: . 1010100010 指数:1010 基数:2
浮点数字面量默认都为double类型,所以在定义的float型数据后面加F或f;double类型可不写后缀,但在小数计算中一定要写D或X.X。
float 的精度没有long高,有效位数(尾数)短。
float 的范围大于long 指数可以很大。
浮点数是不精确的,不能对浮点数进行精确比较。
3)一种字符类型(char):
char:16位,是整数类型,用单引号括起来的1个字符(可以是一个中文字符),使用Unicode码代表字符,0~2^16-1(65535)。
注意事项:
不能为0个字符。
转义字符:\n 换行 \r 回车 \t Tab字符 \" 双引号 \\ 表示一个\
两字符char中间用“+”连接,内部先把字符转成int类型,再进行加法运算,char本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
4)一种布尔类型(boolean):true真 和false假。
5)类型转换: char-->
自动转换:byte-->short-->int-->long-->float-->double
强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。
②容易超过取值范围。
9.流程控制语句
1)选择控制语句
if语句:if 、if-else、if-else-if:可以处理一切分支判断。
格式:if(判断){…}、if(判断){…}else{…}、if(判断){…}else if(判断){…}
switch语句:switch(必须为int类型){case 常量1:…; case 常量2:… ; ….}
u 注意事项:
v int类型指:byte、short、int,不能写long类型,要写也必须强转成int类型;而byte、short为自动转换成int。
v swtich-case:若case中无符合的数,并且default写在最前(无break时), 则为顺序执行,有break或 } 则退出。
v swtich-case:若case中无符合的数,并且default写在最后,则执行default。
v swtich-case:若case中有符合的数,并且default写在最后,并且default前面的case没有break时,default也会执行。
2)循环控制语句
①for:最常用,用在与次数有关的循环处理,甚至只用for可以解决任何循环问题。
u 注意事项:for中定义的用于控制次数的循环变量,只在for中有效,for结束则循环变量被释放(回收)。
②while:很常用,用在循环时候要先检查循环条件再处理循环体,用在与次数无关的情况。如果不能明确结束条件的时候,先使用while(true),在适当条件使用if语句加break结束循环。
③do-while:在循环最后判断是否结束的循环。如:使用while(true) 实现循环的时候,结束条件break在while循环体的最后,就可以使用 do-while 。do-while 的结束条件经常是“否定逻辑条件”,不便于思考业务逻辑,使用的时候需要注意。可以利用while(true)+ break 替换。
④循环三要素:A.循环变量初值 B.循环条件 C.循环变量增量(是循环趋于结束的表达式)
⑤for和while循环体中仅一条语句,也要补全{ },当有多条语句,且不写{ }时,它们只执行紧跟着的第一条语句。
⑥循环的替换:
while(布尔表达式){} 等价 for(;布尔表达式;){}
while(true){} 等价 for(;;)
while(true){} + break 替换 do{}while(布尔表达式);
for(;;) + break 替换 do{}while(布尔表达式);
3)跳转控制语句
continue:退出本次循环,直接执行下一次循环
break:退出所有循环
10.数组
类型一致的一组数据,相当于集合概念,在软件中解决一组,一堆XX数据时候使用数组。
1)数组变量:是引用类型变量(不是基本变量)引用变量通过数组的内存地址位置引用了一个数组(数组对象),即栓到数组对象的绳子。
eg:数组变量的赋值
int[] ary = new int[3];//ary----->{0,0,0}<----ary1
int[] ary1 = ary;// ary 的地址赋值给ary1,ary 与 ary1 绑定了同一个数组
//ary[1] 与 ary1[1] 是同一个元素,数组变量不是数组(数组对象)
2)数组(数组对象)有3种创建(初始化)方式:①new int[10000] 给元素数量,适合不知道具体元素,或元素数量较多时 ②new int[]{3,4,5} 不需要给出数量,直接初始化具体元素适合知道数组的元素。③ {2,3,4} 静态初始化,是②简化版,只能用在声明数组变量的时候直接初始化,不能用于赋值等情况。
eg:数组初始化
int[] ary1 = new int[]{2,3,4};//创建数组时候直接初始化元素
int[] ary2 = {2,3,4};//数组静态初始化,只能在声明变量的同时直接赋值
//ary2 = {4,5,6};//编译错误,不能用于赋值等情况
ary2 = new int[]{4,5,6};
3)数组元素的访问:①数组长度:长度使用属性访问,ary.length 获取数组下标。②数组下标:范围:0 ~ length-1就是[0,length),超范围访问会出现下标越界异常。③使用[index]访问数组元素:ary[2]。④迭代(遍历):就是将数组元素逐一处理一遍的方法。
4)数组默认初始化值:根据数组类型的不同,默认初始化值为:0(整数)、0.0(浮点数)、false(布尔类型)、\u0000(char字符类型,显示无效果,相当于空格,编码为0的字符,是控制字符,强转为int时显示0)、null(string类型,什么都没有,空值的意思)。
5)数组的复制:数组变量的赋值,是并不会复制数组对象,是两个变量引用了同一个数组对象。数组复制的本质是创建了新数组,将原数组的内容复制过来。
6)数组的扩容:创建新数组,新数组容量大于原数组,将原数组内容复制到新数组,并且丢弃原数组,简单说:就是更换更大的数组对象。System.arraycopy()用于复制数组内容,简化版的数组复制方法:Arrays.copyOf()方法,但需JKD1.5+。11.字符串
字符串(string):永远用“”双引号(英文状态下),用字符串连接任何数据(整数),都会默认的转化为字符串类型。
字符串与基本数据类型链接的问题:如果第一个是字符串那么后续就都按字符串处理,如System.out.println("(Result)"+6+ 6 );那么结果就是(Result)66,如果第一个和第二个…第n个都是基本数据,第n+1是字符串类型,那么前n个都按加法计算出结果在与字符串连接。如下例中的System.out.println(1+2+”java”+3+4);结果为3java34。
eg:字符串前后的“+”都是连接符!不是加法运算符!
System.out.println("A"+'B');//AB
System.out.println('A'+'B');//131
System.out.println(1+2+”java”+3+4);//3java34
注意事项:比较字符串是否相等必须使用equals方法!不能使用==。"1".equals(cmd)比cmd.equals("1") 要好。
以上是这阶段学习的内容整理笔记。
- 黑马程序员-Java 基础知识1. (笔记部分总结)
- 黑马程序员-Java基础知识5(部分笔记总结)
- 黑马程序员-Java基础知识2.(笔记部分总结-方法,排序和查询)
- 黑马程序员-Java基础知识3.(部分笔记总结string类)
- 黑马程序员-Java基础知识4,(部分笔记总结面向对象-类)
- 黑马程序员-Java基础知识6(部分笔记总结-List-map-set)
- 黑马程序员-Java基础知识7(部分笔记总结-字符串的方法)
- 黑马程序员-Java基础知识8(部分笔记总结-IO流)
- 黑马程序员-Java基础知识9(部分笔记总结字符流)
- 黑马程序员-Java基础知识10(部分笔记总结try-catch)
- 黑马程序员-基础知识部分总结
- 黑马程序员--------Java基础知识总结(二)
- 黑马程序员—线程基础知识部分总结
- 黑马程序员------java基础知识总结
- 黑马程序员---java基础知识总结
- java基础知识总结---黑马程序员
- 黑马程序员--Java基础知识总结
- 黑马程序员-Java基础知识总结
- Xcode基本操作
- NGUI 3.5教程(二)Label 标签 (Hello world)、多行文本
- hbase组合rowkey和partial key scan
- Java中final的用法
- 数组总结
- 黑马程序员-Java 基础知识1. (笔记部分总结)
- 天气预报插件代码--通过传递城市拼音名,最简单的天气插件--更多看2345网站
- C 指针详述
- Oracle 术语
- 创建一个N*N的数组,顺时针依次增大
- python中常用的字典内建函数
- 南阳理工OJ_题目128 前缀式计算
- 用数字描绘中国互联网20年变迁
- mysql查询在一张表不在另外一张表的记录