java语言学习(1)

Java开发入门知识全面介绍

写在前面的话

恭喜自己进入一个新的语言,这对于我来说,是一个全新的世界。并且打算深耕的第一门语言。在这门语言,在不久的未来,用它来写自己的第一个项目,用它来重学数据结构,用它来学算法,优化自己的代码。可以说,这门语言我给予了很大的希望。希望我真正了解一点计算机的世界。

对于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方法

如何快速学习技术和知识点

  1. 需求

  2. 与传统技术比较

  3. 引出我们学习新技术和知识点

  4. 学习新技术或者知识点的基本原理和语法(不要考虑细节)

  5. 快速入门案例(基本程序)

  6. 开始研究技术的注意事项,使用细节,使用规范,如何优化

转义字符

  • \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);
}
}
  • 变量相当于内存中一个数据的存储空间,变量可以看作一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量值
  1. 声明变量 int a;

  2. 赋值 a = 60;

  3. 也可以一步到位 int a = 60;

变量快速入门

int age = 20;
double score = 88.5;
char gender = '男';
String name = "jack";

变量使用的注意事项

  1. 变量表示内存中的一个存储区域

  2. 比如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
  1. temp = i;

  2. i = i + 1;

  3. i = temp;

    int i = 1;
    i = ++ i;
    //答案是2

  4. i = i + 1;

  5. temp = i;

  6. i = temp;

关系运算符(补充)

instanceof -----> 检查是否是类的对象

细节

关系运算符的结果都是boolean型,也就是true或者false

逻辑运算符

在这里插入图片描述

  • 短路与&&

  • 短路或||

  • 取反 !

  • 逻辑与&

  • 逻辑或|

  • 逻辑异或 ^

在这里插入图片描述

  • a^b :叫逻辑异或,当a和b不同时,则结果为true,否则为false

短路与&&和逻辑与&的区别

  • &&短路与:如果第一个条件为假,则第二个条件不会判断,效率高

  • &逻辑与:不管第一个条件是否为假,第二个条件都要判断,效率低

  • 开发中,我们使用的基本时短路与&&,效率高

短路或||和逻辑或|

  • ||短路或:如果第一个条件为真,则第二个条件不会判断,最终结果为真,效率高

  • 逻辑或|:不管第一个条件是否为真,第二个条件都要判断,效率低

  • 开发中,我们基本使用短路或||

复合赋值运算符会进行类型转换

三元运算符

int a = 10;
int b = 99;
int result = a>b?a++:b--;

运算的优先级

在这里插入图片描述

  1. (),{} 等

  2. 单目运算符

  3. 算术运算符

  4. 位移运算符

  5. 比较运算符

  6. 逻辑运算符

  7. 三元运算符

  8. 赋值运算符

标识符的命名规则和规范

标识符概念: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重合度高的知识,将会在下一篇博客结束。

今天星期三,争取星期五结束。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值