写在前面的话
恭喜自己进入一个新的语言,这对于我来说,是一个全新的世界。并且打算深耕的第一门语言。在这门语言,在不久的未来,用它来写自己的第一个项目,用它来重学数据结构,用它来学算法,优化自己的代码。可以说,这门语言我给予了很大的希望。希望我真正了解一点计算机的世界。
对于Java前面的一些简单介绍和与c语言类型的部分,将以简略的笔记带过。不会花费很多时间来写在博客里。
第一章
课程阶段
-
建立编程思想
-
提升编程能力
-
分析需求,代码实现能力
Java介绍
1995年第一代java发布,现在是甲骨文来维护
Java 技术体系平台
-
标准版 SE
-
企业版 EE(主要针对web开发)
-
小型版 ME
Java重要特点
-
是面向对象的(oop)
-
健壮性的,强类型机制,异常处理,垃圾的自动收集
-
跨平台性的,编译后的文件(class文件)既可以在windows和Linux系统里运行
-
Java语言是解释型
- 解释式语言,编译后的代码不能被机器执行,需要解释器来执行。编译型语言,编译后可以直接被机器执行c/c++
JVM介绍
- 全称 Java Virtual machine
.java文件变成 .class 的过程叫编译
不同的操作系统,有不同的jvm,然后编译后.class 就可以运行了
命令如下:
编译 javac
运行 java
JDK介绍(开发者)
-
JDK 的全称 JavaDevelopment Kit
-
JDK = JRE+ Java 开发工具
-
JDK 是提供给Java开发人员使用的,其中包含了Java的开发工具,也包含了JRE
JRE介绍(使用者)
-
全程Java Runtime Environment
-
JRE = JVM + java 核心类库
-
包括Java 虚拟机(JVM Java virtual Machine)和Java 程序所需的核心库等,如果想要运行一个开发好的Java程序,计算机里只需要安装JRE就行
配置环境的作用:当windows系统在当前目录下找不到文件,就会在path环境里找
注:我们把.java文件叫源文件
把.class文件叫做字节码文件
第二章
Java开发的注意事项和事件说明
-
Java 源文件是以 java 为扩展名,
-
源文件的基本组成部分是类(class)
-
Java应用程序的执行入口是main()方法,他有固定的书写格式:
public static void main(String[] args){…}
-
java 语言区分大小写
-
java的方法由一条条语句构成,每个语句的结束以“;”结束
-
大括号成对出现
-
一个源文件中只能有一个pubile 的类,其他类数量不限(编译后,每一个类都对应一个.class )
-
如果源文件里有一个公共类,那么文件名必须是公共类的名
-
一个源文件中最多只能有一个public类,其他类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样的入口方法就是非public的main方法
如何快速学习技术和知识点
-
需求
-
与传统技术比较
-
引出我们学习新技术和知识点
-
学习新技术或者知识点的基本原理和语法(不要考虑细节)
-
快速入门案例(基本程序)
-
开始研究技术的注意事项,使用细节,使用规范,如何优化
转义字符
-
\t (一个制表位,实现对齐的功能)
-
\n
-
\
-
"
-
’
-
\r 一个回车,光标是回到当前行的最前面
在控制台按下tab键可以补全文件名
常见错误
-
找不到文件
-
源文件不存在
-
当前路径不对
-
-
主类名和文件名不一致
-
缺少分号
不好修改的错误,业务错误,环境错误
注释(comment)
-
单行注释 //
-
多行注释/**/
-
文本注释
注释不会被JVM机解释执行
多行注释不允许嵌套多行注释
文档注释
解释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类
-
基本格式
-
如何生成对应的文档注释
-
应用示例
基本格式
/**
*
*/
代码指令
javadoc -d d://temp -author -version Comment02.java
d://temp ----->生成文档的路径
-author -version -->生成的标签
Comment02.java —>源文件
Java 代码规范
-
类,方法的注释,要以javadoc的方式来写
-
非Java Doc的注释,往往是给代码的维护者来看的,着重是告诉读者为什么这么写,如何修改等待,注意说明问题等
-
使用tab键来对齐
-
运算符和等号两边习惯加一个空格
-
源文件使用utf-8编码
-
行宽度不超过80
-
行尾风格和次行风格
DOS命令(了解)
DOS全称:Disk Operating System
磁盘操作系统
基本原理
-
接受指令
-
解析指令
-
执行指令
相对路径和绝对路径
一个文件夹,也叫目录
相对路径:从当前目录开始定位,形成的一个路径
绝对路径:从顶级目录开始定位,形成的一个路劲

DOS命令有哪些
-
dir,当前目录有哪些
- dir d:\abc 就可以查看abc目录下有什么
-
cd
-
cd /D c: (切换到其他盘)
-
cd… (切换到上一级)
-
cd\ (切换到根目录)
-
cd cd 后面跟绝对路径或者相对路径(切换到当前盘的其他目录下)
-
注:…\是切换到上一级,如果是顶级了,也不会报错
-
tree
- 一个目录下的所有文件
- tree d:\
-
cls (清屏)
-
exit (退出DOS)
-
md(创建目录)
-
rd (删除目录)
-
copy (拷贝文件)
-
del (删除文件)
-
echo (输入内容到文件)
-
type
-
move (剪切)
第三章
-
变量介绍
-
+号的使用
-
数据类型
-
编码
-
数据类型的转换
变量的基本原理
class Test{
public static void main(String []args){
int a = 1;
int b = 2;
b = 89;
System.out.println(a);
System.out.println(b);
}
}
- 变量相当于内存中一个数据的存储空间,变量可以看作一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量值
-
声明变量 int a;
-
赋值 a = 60;
-
也可以一步到位 int a = 60;
变量快速入门
int age = 20;
double score = 88.5;
char gender = '男';
String name = "jack";
变量使用的注意事项
-
变量表示内存中的一个存储区域
-
比如int 4个字节,double 8个字节
+的使用
-
当两边都是数值型时,则做加法运算
-
当左右两边有一方是字符串时,则做拼接运算
-
运算方向,从左到右
System.out.println(100+98);
//98
System.out.println(“hello”+100);
//hello100
数据类型
-
基本数据类型
-
数值型整数类型
-
byte -------->1
-
short -------->2
-
int -------->4
-
long ---------->8
浮点类型float --------> 4double ----->8
-
-
字符型 char ------>2
-
布尔类型 boolean—>1
-
-
引用数据类型
-
class(类)
-
interface(接口)
-
数组
-

细节问题
-
数据类型的空间不受操作系统的改变而改变
-
Java中整型常量默认位int型,声明long型常量,需在后面加 ’l‘ 或 ’L‘
int n1 = 1L; //错的
long n2 = 1L;//对的 -
java程序中变量声明位int型,除非不足以表示大数,才使用long
-
bit:是计算机的最小存储单元,1byte(字节) = 8 bit(比特)
浮点型

说明一下:
-
浮点数在机器中的存放形式
- 浮点数 = 符号位 + 指数位 + 尾数位
-
尾数部分可能丢失,造成精度损失(小数都是一些近似值)
-
Java 的浮点型常量默认为double,声明float型常量,必须加 ’f‘ 或 ’F‘ 。
-
通常情况下,应该使用double,因为他比float的精度更高
float num1 = 1.1;//这是不对的
float num2 = 1.1f;//这是对的
double num3 = 1.1; //这是对的double double num4 = 1.1f;//这也是对的
浮点型常量的两种表示形式
-
十进制表示
-
double num5 = 0.512;
-
double num5 = .512; (这前面的0可以省略)
-
-
科学计数法
-
5.12e2 ----->5.12 *10^2;
-
5.12e-2 ------>5.12*10^-2;
-
注:这里的e大小写都可以
-
浮点数的使用陷阱
当我们对运算结果是小数的进行相等判断时,要小心
double num1 = 2.7;
double num2 = 8.1 / 3;
if(num1 == num2){
....
}//这样写不安全
if(Maxt.abs(num1 - num2) < 0.001){
.....
}//这样写安全
Java API 文档的使用
API介绍:(Application Programming Interface,应用程序编程接口)
是Java提供的基本编程接口(Java提供的类还有相关的方法)。中文在线文档 hhtps://www.matools.com
Java类的组织形式

查找方法:包->类->方法
直接搜索
字符类型(char)
多个字符用String
char c1 = 'a';
char c2 = '\t';
char c3 = '韩';
char c4 = 97;
//说明:字符类型可以直接存放一个数字
字符类型细节
-
单引号引的才是字符类型
-
允许使用转义字符
-
char的本质是整数(unicode编码)
-
要输出整数时 (int)变量
-
char是可以参与运算的

字符类型的本质探讨
-
字符型存储到计算机中,许哟啊将字符对应的码值(整数)找出来
-
字符和码值是事先规定好的
-
ASCII码表(用一个字节表示,一共128个字符,实际上一个字节可以表示256个字符)
-
Unicode (字母和汉字统一都是占两个字节,会浪费一定的空间)
-
utf—8(大小可变的编码,字母使用一个字节,汉字使用3个字节)
-
gbk码(字母使用一个字节,汉字两个字节)
-
big5码(繁体中文,台湾,香港)
-
布尔类型(boolean,占一个字节)
细节:在Java语言里不可以用 0 或 非0 来代替布尔类型
基本数据类型的转换
自动转换
介绍:我们进行赋值或运算时,精度小的类型自动转换成精度大的数据类型,这个就是自动类型转换

automatic -----> auto (自动)
convert ------>转化
细节
-
当多种数据类型在一起运算时,会把所有数据自动转换成容量最大的数据类型,然后再进行计算
float d1 = 10 + 4.3;
//这样写是错的
//改写的两种方法float d1 =10 + 4.3f;
double d1 = 10 + 4.3; -
当我们把数据大的数据类型赋给数据小的类型时,会报错。反之就会自动转换
-
byte ,short 不会和 char 发生自动转换
byte b1 = 10;
char a = b1;
//这会编译错误 -
byte,short, char 之间是可以运算的,运算时将他们都转换成int 进行运算的,最后的结果也是int
-
boolean 是不参类型的自动转换
-
自动提升原则:表达式结果的类型自动提升位操作数中最大的类型
强制类型转换 force(强制)
介绍:自动类型转换的逆过程,将容量大的数据类型转换成容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或者溢出 int i = (int)1.9;
细节
-
强转符号只对最近的数据有效,往往需要加上小括号来使用
-
char类型可以保存int的常量值,但不能保存int 的变量值,需要强转
-
byte short char 运算时,当做int来处理
基本数据类型和String 类型的转换
- 基本数据类型转换成字符串,语法: 将基本数据类型的值 + “ ” 就可以了

- String 类型转换成基本数据类型,语法:通过基本类型的包装类调用parseXX方法即可。(这里会在将面对对象(oop)的时候会详细说)
String s5 = "123";
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5);
float num3 = Float.parseFloat(s5);
byte num4 = byte.parseByte(s5);
boolean b = BOolean.parseBoolean("true");
short num6 = Short.parseShort(s5);
字符串转换成字符(含义是在一个字符串里面取出一个字符)
System.out.println(s5.charAT(0));
//将s5第一个字符得到
细节
-
在将String 类型转换成基本数据类型时,要确保String类型能过转换成有效的数据,比如 我们可以把“123” ,转换成一个整数,但不能把“hello” 转换成一个整数
-
如果格式不正确,就会抛出异常,程序就会终止,这个问题在异常处理章节中会处理
第四章
-
运算符介绍
-
算数运算符
-
关系运算符
-
逻辑运算符
-
赋值运算符
-
三元运算符
-
运算符优先级
运算符介绍
表示数据的运算,赋值,比较等

例题
int i = 1;
i = i++;
//答案 1
-
temp = i;
-
i = i + 1;
-
i = temp;
int i = 1;
i = ++ i;
//答案是2 -
i = i + 1;
-
temp = i;
-
i = temp;
关系运算符(补充)
instanceof -----> 检查是否是类的对象
细节
关系运算符的结果都是boolean型,也就是true或者false
逻辑运算符

-
短路与&&
-
短路或||
-
取反 !
-
逻辑与&
-
逻辑或|
-
逻辑异或 ^

- a^b :叫逻辑异或,当a和b不同时,则结果为true,否则为false
短路与&&和逻辑与&的区别
-
&&短路与:如果第一个条件为假,则第二个条件不会判断,效率高
-
&逻辑与:不管第一个条件是否为假,第二个条件都要判断,效率低
-
开发中,我们使用的基本时短路与&&,效率高
短路或||和逻辑或|
-
||短路或:如果第一个条件为真,则第二个条件不会判断,最终结果为真,效率高
-
逻辑或|:不管第一个条件是否为真,第二个条件都要判断,效率低
-
开发中,我们基本使用短路或||
复合赋值运算符会进行类型转换
三元运算符
int a = 10;
int b = 99;
int result = a>b?a++:b--;
运算的优先级

-
(),{} 等
-
单目运算符
-
算术运算符
-
位移运算符
-
比较运算符
-
逻辑运算符
-
三元运算符
-
赋值运算符
标识符的命名规则和规范
标识符概念:java 对各种变量,方法和类等命名时使用的字符序列称为标识符,凡是自己可以起名字的地方都叫标识符
标识符的命名规则
-
由26个英文字母的大小写,0-9,__和$组成
-
数字不可以开头
-
不可以使用关键字和保留字,但能包含关键字和保留字
-
严格区分大小写,长度无限制
-
标识符不能包含空格
标识符的命名规范
-
包名:多个单词组成时所有的字母都是小写:aaa.bbb.ccc //比如:com.hsp,crm
-
类名,接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz //比如:TankShotGame(大驼峰)
-
变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz// 比如:tankShotGame(小驼峰,简称驼峰)
-
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ // 比如:TAX_RATE
-
后面我们学习到类,包,接口时,我们的命名规范要注意遵守,更加详细的看文档
键盘输入语句
扫描器(对象), 就是Scanner
import java.util.Scanner;
//表示把java.util下的Scanner类导入
public class Input{
public static void main(String[] args){
// Scanner 表示简单文本扫描器,
// 在java.util 包
//1.引入Scanner类所在的包
//2.创建Scanner对象,new创建一个
//scanner 就是Scanner类的对象
Scanner scanner = new Scanner(System.in);
System.out.println("请输入名字”);
//3.接受用户输入,使用相关的方法
String name = scanner.next();
}
}
import java.util.Scanner;
public class Hello{
public static void main(String[] args){
// String book1 = "天龙";
// String book2 = "笑傲";
// System.out.println(book1 + book2);
// String name = "jack";
// int age = 20;
// double score = 80.0;
// char gender = '男';
// String hobby = "打篮球";
// System.out.println("姓名\t年龄\t成绩\t性别\t爱好\n"+ name + '\t' + age + '\t' + score + '\t' + gender + '\t' + hobby);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入姓名");
String name = scanner.next();
System.out.println("请输入年龄");
int age = scanner.nextInt();
System.out.println("请输入薪水");
double salary = scanner.nextDouble();
System.out.println("姓名" + name + "年龄" + age + "薪水" + salary);
}
}
先写到这,关于java与c重合度高的知识,将会在下一篇博客结束。
今天星期三,争取星期五结束。
Java开发入门知识全面介绍

被折叠的 条评论
为什么被折叠?



