JAVA学习笔记
第一章:JAVA基础概念
第一天
一、软件基础等概念
1.软件和程序
软件的定义:一系列按照特定顺序组织的计算机数据和指令的集合。
数据
软件
很多程序
程序:完成指定功能的一条指令(双击的时候不能进入下一级目录,直接可以执行的比如.exe)。
2.计算机语言的概念及发展
计算机语言:用于人与计算机之间通讯的语言。
机器语言
低级语言
汇编语言
计算机语言
结构化 Fortran语言,Basic语言, C
高级语言
面向对象 C++,Java,C#
机器语言:由一段0和1的二进制代码所组成的语言。机器语言是直接由电脑CPU进行执行。
优点:直接执行、速度快、资源占用少。
缺点:可读性、可移植性、编程繁杂。
汇编语言:优点:目标代码剪短、占用内存少、执行速度快、能访问、控制各种硬件设备。
缺点:和机器语言一样是低级语言,难学,难写,难记忆。
高级语言:面向过程和面向对象的语言。
3.程序设计
例子:建一座房子,房子几层楼,房子的大小,占地面积,使用材料,门开几扇,窗户开几扇?
开发一个软件:软件的功能,软件的开发环境,使用什么语言开发?软件中涉及的模型,数据结构和算法是什么?
(1)程序设计的步骤如图:
(2)算法
算法:解决某一问题的方法和步骤。
举例(C#提及的黑蓝墨水换瓶子的问题,利用一个新的瓶子)
算法的表示(流程图)
原则上说,算法可以用任何形式的语言和符号来描述。伪代码和流程图
4.JDK的安装和环境变量的配置
Oracle官网下载jdk对应版本,安装以及将bin目录配置到path系统变量中,具体步骤不再赘述。
5.Hello world 第一个程序的问题总结
细节(今天提问答错)
System.out.print(); 如果没有ln ,括号中输出一个空字符串但是没有双引号这条程序是错误的,会报错。
因为输出语句system.out.println()的意思是即使括号内没有双引号,ln依然代表了一个输出,相当于system.out.print(“\n”);相当于有一个换行的输出。
public classHello
{
public static void main(String[] args)
{
System.out.println("Hello,World!");
}
}
解释:
class :类的标志
public :公共的(访问修饰符)
static:静态的(可选修饰符)
void:无(返回类型)
main:方法名(主方法)
(String[] args):参数列表
System.out.println("*”):输出,注意有两种形式
类名Hello:需要符合规范,与文件名相同,首字母大写,大小写敏感,多个单词每个单词首字母大写。
二、JAVA的技术特点
1. 简单性
2. 面向对象的语言(OO)
3. 一种与平台无关的语言
4. 健壮性和安全性
5. 多线程
复习
1. 什么是软件?和程序是什么关系?
2. 计算机语言的发展?
3. 程序设计的步骤?
4. 程序中的错误的分类?
5. 什么是JDK ?什么是JRE?
JDK是Java Develop kit java开发工具包
JRE:Java运行环境。Javaruntime environment。
6. 什么是class文件?
7. 什么是JVM?有什么作用?
8. Java代码的执行流程?
9. JVM的工作流程?
10. JIT是什么?有什么作用?
第二章:语法基础
第二天
一、注释
1. 单行注释: // 快捷键 ctrl +/
2. 多行注释: /*内容*/
3. 文档注释: /**内容*/
4. 快捷键: Alt+/ 包括主函数,输出语句等等快捷键。
二、语法基础
关键字
JAVA中的单词 保留字
标识符
1. 什么是关键字?(书P24中2-1表格,但不需要记)
在语言中具有特殊的含义,并不能随意使用的单词。在java中有两个特殊的关键字,const和goto,不能再java中使用。
2. 保留字
保留字具有一定的含义,但不是关键字。只有三个,true、false、null。
3. 标识符(变量名、方法名、类名等等)
用户自定义单词,但需要按照规定书写。
l 标识符不能是关键字或者保留字
l 标识符由字母、数字、下划线和美元符号组成
l 标识符不能以数字开头
l 标识符区分大小写,并且没有规定最大长度。(类名不区分大小写)
4. 数据类型
l Java中具体来说具有11种数据类型
l 如上图,分为基本数据类型和引用数据类型
l 基本数据类型分为整型、浮点型、字符型、布尔型
i. 整型:就是整数,继续分为四种:字节型byte,短整型short,整型int,长整形long
ii. 浮点型:小数继续分为两种单精度float 双精度 double
iii. 字符型:字符(a、b、c……) char,字符也是用二进制进行存储的。A—65,a—97 ,并且字母顺序是连续的。
转义符:将某个字符原本的意义进行替换。
如:在一个语句中加上“”,为了让程序不以为它是语句的双引号,需要转义为没有特殊含义的“”。
在java中,字符的默认值均为Unicode码
iv. 布尔型:true or false boolean
l 进制的转换:
i. 整型的转换
1. 二进制转十进制 1011010 110110 111011
2. 十进制转二进制101 125 33
ii. 实型的转换
1. 十进制转二进制:10.625 13.125 51.8125
2. 二进制转十进制:11.11 101.101 1.111
5. 变量和常量
Java中存储值得方式有变量和常量
l 变量:在程序运行过程中可能发生改变的量
变量的书写方式: 数据类型变量名 = 值;例如:int x = 1 0;
变量的书写有两种方式:1先声明后赋值。(int x; x = 10)2,声明同时初始化。
l 常量:在程序运行过程中不变的量,例如圆周率。
常量的定义方式:final 数据类型变量名(全大写) = 赋值;
例如: final double PI =3.141592654;
常量的值不能改变。
l 所有数据类型的定义
byte b= 1; shorts = 1; int I = 1; long l = 1;
float f = 1.0f;double d = 1.0;
char定义时有两种方式,一种是存储字符,一种是存储数值,在存储数值时会根据ASCII码表找到对应的字符进行存储。
char ch = ‘a’;char ch2 = 97;
boolean b =true;
自动类型转换:低类型自动像高类型转换。
强制转换类型:在该数值前加上(数据类型)即可。例如:(char)97
会造成精度丢失的转换称为强转。
System.out.println(ch2+1);这句程序输出的是 98 为什么不是b?要输出b怎么办?
6. 引用数据类型之字符串
String str = “字符串”; 双引号,这是跟字符型的区别。
字符串拼接:若+运算符两边有一个是字符串,则不再进行加减运算,而是拼接。
第三天
1. 运算符
a) 加减乘除、取模、拼接:+、-、*、%、+、
b) 非:!
c) 取反减1:~ 去比该整数相反数小1的数值
d) 移位运算符:>>、<< 、>>> 有符号和无符号(电脑计算中,最简单的计算乘法的方式是左移和右移,运算速度最快)
i. >>:将该符号的左边的数据转化为二进制,然后整个数据往右边移动。
ii. <<:左移,将该符号左边的数据转换为二进制,然后整体左边移动,后面补0.。
iii. >>>无符号右移
e) 比较运算符:> 、<、>=、<=
f) 相等运算符:== 、!=
g) 位运算符:& | ^ 与、或、异或
h) 前置、后置:都是原有运算符上+1或者-1
i. 前置:++a,--a
ii. 后置a++,a--;
i) 条件运算符:&& || 与 & | 的区别
i. && 为短路与,|| 为短路或
ii. 区别:计算的区别,&& 在前一个条件为假的情况下不会判断后面的条件,同上,||在前一个条件为真的时候就不会判断后一个了,因此叫短路逻辑运算符。
j) 三目运算符:?: if-else的缩减版。
k) 扩张赋值运算符:+= 、 -=、*= 、/= (扩展赋值时会自动进行类型转换)
第三章程序流程控制
一、流程控制语句(条件语句+循环语句)
1.条件语句分为:if语句+switch语句
If(条件){表达式;}
Switch语句格式,格式不再说明,注意break,和穿透输出的特性。Switch语句可接受的数据类型是 byte short int char String 其中String类型是jdk7以后的。
第四天
二、循环语句
1.什么是循环?
循环就是重复,循环中最重要的,就是找到循环的是什么。
2 循环语句
循环语句分为:for循环、while循环、do……while循环
1) for循环
for循环的结构
for(表达式1;表达式2;表达式3){语句}
表达式1:起始赋值
表达式2:结束的依据
表达式3:循环变量的变化情况(可以增加也可以减小)
三个表达式告知了循环的次数
语句:重复的事情
例如:输出1-100所有数值
for(int i= 1;i<=100;i++)
{
System.out.println(i);
}
例如:输出50到99的数字
for (inti = 50; i <= 90; i++) {
System.out.println(i);
}
例如:输出1-100的中的偶数
for (inti = 1; i <= 100; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
例4:计算1-100之间偶数的和
intsum = 0;
for (inti = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
System.out.println(sum);
For循环的执行顺序:表达式1→表达式2→语句→表达式3→表达式2酱紫循环
2)这里涉及一个作用域的问题,作用域就是变量的作用范围。比如例4的sum需要定在在合适的位置。
3)while循环的结构
表达式1;
While(表达式2)
{ 语句;
表达式3
}
4)do……while循环的结构
do{
语句
}while(表达式)
第四章:数组
1.数组的定义
从字面上理解,数组是装相同数据类型并且长度固定的连续内存片段。
特点:1)数组的大小/长度固定不变
2)存放相同数据类型的数值
3)连续的内存空间
4)为了用数中的数据,在每一个区域都起了一个标记—小标、索引---方便使用,下标从0开始,知道数组最大长度减1.
2.数组的书写方式
1)数据类型[] 数组名 = new 数据类型[数组长度];
数组数据类型 标识符 创建新的数组,并且提示长度
2)如何赋值
使用数组的某一个框---------a[0] = 1;
|
3)如何使用?
和赋值时一样。