知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

java小白进阶之基础篇

发表时间:2022-03-25来源:网络

JAVA基础语法归纳>>小白进阶~~java基础语法

>>Java概述

Java语言的发展历史

1991年出现,1995年正式发布 创始人:James Gosling 出生地:SUN 被Oracle公司在这里插入代码片 最新的JDK的版本: 2020年发布JDK14 Java体系: JavaSE 标准版 java基础,桌面应用开发 JavaEE 企业版 javaweb,网站(京东,丁香医生,企业ERP) JavaME 微型版 被Android替代

Java文件运行过程

如何在cmd中运行java程序? 步骤1: win+r ,输入cmd 步骤2: 切换盘符 例如:你程序在d盘 D:回车 步骤3: 切换目录 cd 目录名称 回车 步骤4: 先编译java源文件 javac 文件名.java 步骤5: 再运行字节码文件 java 类名

JDK&JRE&JVM

JDK Java开发工具集,包含一系列用于操作java程序,字节码文件的工具,比如编译工具,文档工具,打包 工具等 JRE Java运行时环境,主要包含的用于支持java程序运行的类库,Java虚拟机(JVM) JVM Java虚拟机 GC 垃圾回收机制 【面试题】为什么Java可以跨平台? 因为Java有JVM,JVM运行的是与平台无关的字节码文件 可以一次编译处处运行,不同的平台都会安装JDK,JDK中 包含虚拟机。

环境变量配置

环境变量,为了告诉其他需要基于java环境运行的软件,jdk所在的路径;以及可以快捷的通过cmd操作java相关的 工具 环境变量配置分为两步: 1. 配置 JAVA_HOME:JDK所在的安装路径(默认位置:C:\Program Files\Java\jdk1.8.0_101) 2. 配置 Path:JDK所在的安装路径的bin目录(默认位置:%JAVA_HOME%\bin) 3. 配置Classpath:配置字节码文件所在地址(JDK5之后,会自动寻找当前目录下的字节码文件,因此不再需要 配置)

Java程序运行原理

java是一门高级语言;是一门跨平台的语言(一次编写,运行在任何支持JVM的操作系统中windows,mac,linux),
集编译和解释为一体,任何一个java文件在执行前都需要经过一个编译的过程,然后再通过JVM执行.

先将Java源文件(.java)编译为字节码文件(.class)

javac HelloWorld.java

通过jvm运行字节码文件(*.class)

java HelloWorld

常见的windows命令 1. 进入指定盘符(进入d盘) d: 2. 进入当前盘符的根目录 cd \ 3. 列出当前目录下所有资源 dir 4. 进入指定目录 cd 目录名 . 表示当前目录 .. 表示上一级目录

Java程序编写与执行

类的定义{ 入口的声明(){ //程序的入口,main函数,main方法 public static void main(String[] args) { //系统输出,在命令窗口(控制台)打印一行文本 //执行体 } }

代码编写基本规范

1. Java程序的最基本单元是class 2. 一个java文件中只能存在一个public class 3. 文件名称必须和公共的类名称保持一致(包括大小写) 4. 括号成对出现 5. 开始花括号之前保留一个空格 6. 左大括号开始之后的代码,保持缩进(一般4个空格) 7. 一行语句结束之后使用 ; (英文半角)

>>Java基础语法

注释

// 单行注释 ctrl+/ /* 多行注释 ctrl+shift+/ 取消多行注释 ctrl+shift+\ */ /** 文档注释,可以使用javadoc.exe工具生成帮助文档 */

设置类上的注释模板 Code Template

关键字&标识符

关键字(keyword)

Java中有50个关键字
关键字:赋予特殊作用的小写单词

Java中包含一系列用作于特殊用途的英文单词,比如,定义一个类使用: class ;声明一个方法没有返回值类型使 用: void ;定义一个软件包使用: package ;所有的英文单词都是小写的;以上这些在Java中都称之为关键 字。Java中包含的所有关键字如下: null,true,false:严格意义上属于值,不包含在关键字范畴 gotoconst在Java中作为保留关键字,不允许使用

分隔符&标识符

分隔符 一条语句是以分号(;)结尾的一行代码 一个语句块是以一对花括号({})为边界的语句的集合 Java中允许有任意多的空格 ,包括换行; 标识符 概念:给变量,,方法,包 取名字 要求: 符合阿里编程规约 1. 标识符命名必须遵循见名知意 2. 尽量使用英文单词(拼音)作为标识符名称 3. 标识符严格区分大小写 4. 包名称建议全部使用小写英文单词 5. 类名称使用驼峰式(大驼峰)写法,首字符大写,如果是多个单词组合而成,每个单词的首字符都大写,中间不 能留空格 6. 变量名和方法名使用驼峰式(小驼峰)写法,首字符小写,如果由多个单词组合而成,除第一个单词外,其余的 每个单词首字符大写 注意事项 1. 标识符中不能出现除“_”和“$”之外的其他任何特殊符号("$","_"可以出现在标识符的任意位置) 2. 数字只能出现在中间和末尾,不能出现在代码的开头处 3. 空格不能出现在标识符之间 4. 关键字不能作为标识符名称 5. 不要使用JDK中内置的类名称作为标识符名称,可能会导致不可预料的后果 6. 不要使用中文作为标识符名称,可能会导致乱码

安装阿里巴巴编程规约插件

变量(variables)

1. 常量(不可改变的数据值) 常量在Java中一般用于表示某一个特定值,而且该值一旦使用则无法改变,因此称之为常量 1.直接量 2.自定义常量 2. 变量(可以更改的数据) 能储存计算结果或能表示值抽象概念。变量可以通过变量名访问 编程语言中用于描述数据的最基本的单元称之为变量;变量的定义实际就是在向JVM申请内存空间;变量的定 义语法: 数据类型 变量名称 [= 初始值]

三要素

变量类型 变量名 =; 拆分为2个步骤: //声明 数据类型 变量名; //赋值 变量名 =; 解释: 1.变量名必须符合标识符命名规范,阿里编程规约变量名采用小驼峰命名法 2.基本数据类型 和 引用数据类型 8个(byte short int long float double char boolean) 其他都是引用数据类型(数组,类,接口,枚举) 3. 值必须匹配数据类型 4. 变量通常是可变的,可以重复赋值

变量的使用位置

在同一个范围内,变量名不能相同 变量的定义可以在一个Java程序的多个位置出现: 1. 类结构中直接定义 2. 方法的参数中定义 3. 方法结构体中定义 4. 其他语句块(分支,循环,游离快,构造器) 根据变量的定义位置不同,称呼也存在区别,Java中的变量分为两种: 1. 全局变量 类结构中直接定义的变量称之为全局变量 2. 局部变量 除类结构之外,其他任何地方定义的变量都称之为局部变量

局部变量 和 成员变量 区别

数据类型

在java开发中,大多数时间都是在对数据进行操作,比如:登录,注册,搜索商品,下订单,转账等。既然是数据, 就有类型之分;不同的数据类型也不同。 java是一门强类型(弱类型:JavaScript、python)语言,任何的变量在声明之前都必须显式的指定其数据类型,并 且,在使用过程中数据类型不能够改变。Java中的数据类型分为两个大类:第一类称之为基本数据类型;第二类称 之引用数据类型(面向对象)。

数据类型分类

基本数据类型(8个)

基本类型数据也称之为简单类型,通常用于描述一个基本值,比如说:一个整数,一个字符,一个小数,一个
true、false值等;java中的基本类型数据分为以下四类八种:
整数类型(byte short int long)
浮点类型(float double)
字符类型(char)
布尔类型(boolean)

整数类型

整数类型一般用于表示一个整数(包含正负数),整数类型主要包含4个:
byte(文件操作时常用)
short
int(推荐)
long(时间毫秒数,文件字节数)

注意事项: 1. java中默认的整数类型是int 2. 任何整数类型的运算结果都会转换为int类型 3. 声明long类型变量时,数据值必须在末尾跟上“L” 计算机基础知识: 1字节(byte) = 8(bits) 计算机底层能够识别的只能是01 0000 0000 ~ 1111 1111 十进制和二进制之间转换 // 若给long类型的变量赋值,值超过了int的取值范围 // 添加L或者l 拓展: // byte a2 = (byte) 128; 请问 a2的值为多少? byte a2 = (byte) 128; System.out.println(a2); // -128 byte a3 = (byte) 129; System.out.println(a3); // -127 // 因为值最终都会转换成2进制数 // 十进制数中: 128 = 127 + 1 // 二进制: 127 (0111 1111) // 1 (0000 0001) // 1000 0000 如何转换成十进制数? // 求一个负数的二进制数? // -7 // 步骤1:先求7的二进制数 // 0000 0111 (原码) // 步骤2:取反(0的变成1,1的变成0) // 1111 1000 (反码) // 步骤3:+1 // 1111 1001 (补码) // 1000 0000 转换成 十进制 // 步骤1:减1 // 0111 1111 // 步骤2:取反 // 1000 0000 // 步骤3:计算结果128,前面加一个负号 // -128

浮点类型

java中对于小数类型的表示称之为浮点类型,浮点类型包含两种:

float float 保留8位有效的小数

double double保留 16位有效的小数

注意事项;浮点类型的默认值为 0.0 1. java中默认的浮点数类型为double 2. 表示一个float类型的数据必须在数值末尾追加“f”或“F” 3. 浮点类型一般用于对精度要求不高的运算中0 浮点类型的概念源之于科学计数法,比如表示一个大数值(10045.6)可以按如下方式表示: 1.00456 * 10^4 10.0456 * 10^3 0.100456 * 10^5

BigDecimal解决精度丢失问题

float与double精度丢失问题 所有的整数转变为二进制数的算法会不会无限循环下去呢?绝对不会,整数永远可以用二进 制精确表示 ,但小数就不一定了。*2永远不可能消灭小数部分,这样算法将无限下去。 很显然,小数的二进制表示有时是不可能精确的 BigDecimal / divide * multiply - subtract + add x的n次方 pow(int n)

字符类型

Java中对于单个字符提供了一个char类型表述,区别于String类型(String用于表示一个字符串)

char类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(即为0);
最大值是 \uffff(即为65,535);
char 数据类型可以储存任何字符;

注意事项: String不是基本类型数据,是JDK中提供一个引用类型数据 char类型一般用于字符转码(编码转换);String的内部实现原理基于char类型(String本质上就是一个char数 组) String类型用于表示一个字符串,值必须包含在双引号之间;而char类型用于表示一个字符,并 且字符包含在单引号之间。char类型除了可以表示单个英文字符外,还能表示中文字符,特殊符号等: 关于转义符号“\”,java中对于特殊的符号可以使用“\”转义: \b \t \n \f \r \" \' \\ \n 换行(LF) ,将当前位置移到下一行开头 \r回车(CR) ,将当前位置移到本行开头 \t水平制表(HT) (跳到下一个TAB位置) \\代表一个反斜线字符\ \' 代表一个单引号(撇号)字符

布尔类型

布尔类型通常用于表示true或者false值,只占一个二进制位;因此布尔的取值只能是01;但是Java中只允许用 truefalse表示boolean的值。布尔类型一般用于一些逻辑判断中,比如条件分支,循环的判断。

数据类型转换

在实际的项目经常会涉及到许多不同的基本类型数据的交替使用,因此,不同的基本数据类型之间会涉及到一些转 换需求;java中基本类型数据的转换遵循以下原则: 小转大,直接转 自动类型转换 byte -> int char -> int int -> double 大转小,需强转 强制类型转换 int -> char double -> long long -> byte //强制类型转换(在需要被转换的变量或者值之前使用小括号,括号中写入需要转换成为的目标数据类型的类型名)

引用数据类型(自定义类型)

之前所有的基本类型数据都是用于表示一个简单的值,比如:一个整数,一个字符,一个小数,一个truefalse 值;如果需要表示一个人,一只狗或者一条订单信息;对于以上复杂的数据来说,单纯使用一个基本类型的数据无 法全面表示; 所以,对于以上的需求无法通过一个基本类型数据来表示,因此,java中针对一些复杂的数据还提供了一种特殊的 数据类型-----引用数据类型 引用类型的呈现方式通常以一个类的形式存在,这里就涉及到了java中面向对象程序设计。java中的引用类型包含 以下三类: 1. 类的引用 2. 数组的引用 3. 接口的引用

数据类型强化问题

1short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 +=1;有什么错? 回答: 前面表达式有错误,s1+11int类型,右边的结果为int int赋值给s1,s1为short,需要强制类型转换 s1 = (short)(s1+1); 后面的表达式没有错误,因为+=这种扩展赋值运算符会自动类型转换 2char类型变量能不能储存一个中文的汉子,为什么? 回答: char2个字节16位,所以可以使用unicode编码表示 只要是在unicode编码中文范围的汉字都可以存储4E00-9FA5 但是也有特殊情况生僻字不能存储 3、Integer和int的区别 回答: int 基本数据类型,只能用于算术运算,位运算 Integer引用数据类型,类提供很多方法去便捷操作一些int值 例如:10进制数转2进制数的方法 4、能否在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量? 回答:不可以,虽然doublelong 都是8个字节(64),但是底层的存储 结构不一样,double表示的范围 > long表示的范围 所以把double值赋值给long需要强制类型转换 5、java 中 3*0.1 == 0.3 将会返回什么?true 还是 false? 回答:java中floatdouble,在做运算的时候,会有精度丢失 所以这个表达式的值为false 6、java 中 float f = 3.4; 是否正确? 回答:3.4默认为double类型,若需要强制将3.4赋值给float需要强制类型转换 也有其他解决方案。 解决方案13.4后面添加小f或者大F float f = 3.4F; 解决方案2: 变量f的数据类型,改为 double double f= 3.4; 解决方案3: 使用造型符号,强制类型转换 float f = (float) 3.4;

运算符

Java中提供了大量的用于操作数据的运算符号,这些运算符号分为以下几类:
算术运算符
关系运算
布尔逻辑运算
位运算符
三目运算
其他(扩展赋值,字符串拼接,赋值,造型)

算术运算符

算术运算符主要用于对基本类型的数据(整数,小数)进行类似加减乘除等算术运算;二元运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ph3CUxWi-1607152233139)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\1607150720349.png)]

+ 加法 ― 减法 * 乘法 / 除法 % 求余数 ++ 自增 ―― 自减 ++a 和 a++的区别 ++a 先+1,再给表达式(++a)赋值 a++ 先给表达式(a++)赋值,再+1 不论a++还是++a,都是对a进行+1操作 算术运算注意事项: 1. 任何整数类型进行算术运算都会将结果转换为int类型 2. 任何数值类型跟浮点进行算术运算都会转换为double类型

关系运算符

关系运算一般用于对于基本类型数据的大小比较,等于比较,另外也可以对两个引用类型对象的地址进行比较,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FBdgzcRT-1607152233140)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\1607150849421.png)]

1. 关系运算符,结果为boolean类型 2. > 大于 = 大于等于 > 右移运算符 > 无符号右移运算符 1. 需要将值,转换成二进制数再运算 2. 特点, ~ 10 01 &0则为0 |1则为1 ^ 相同为0 不同为1 3. 运算符优先级从高到低 ~ & ^ | m>>n m向右移动n位 步骤:先将m转换成二进制数,二进制数向右移动n位,等价于除以n个2 m=>=

三目运算

三目运算符也称之三元运算,运算符具备逻辑判断的功能,语法: 数据类型 变量名 = 逻辑表达式?1:2; 解释: 逻辑表达式的值为true,则把值1赋值给变量 否则把值2赋值给变量 复杂的三目运算使用: //输入一个分数(0~100),根据该分数所在的区间显示分数对应的等级(ABCDE) // Scanner sc = new Scanner(System.in); //获取控制台输入的整数 int i = sc.nextInt(); }

Math类与随机数使用

java中提供了一个Math类,是一个工具类,内部主要包含的是一些工具方法,比如,求两数的最大值,最小值,
绝对值,四舍五入,随机数;这些所有的方法都可以直接通过类名称调用。

//随机获取从0.0~1.0(不包含)之间浮点数 //0.000000~0.999999 //0~9.999999 + 1 double d = Math.random(); System.out.println(d); //随机1~10之间的整数? int i = (int)(Math.random() * 10) + 1; System.out.println(i); //随机从[0,10]之间的整数 开闭区间 0.99 * 11 i = (int)(Math.random() * 11); System.out.println(i); //随机获取从[5,10]之间的值? i = (int)(Math.random() * 6) + 5; System.out.println(i);

main(String[] args){
Scanner sc = new Scanner(System.in);
//获取控制台输入的整数
int i = sc.nextInt();
}

#### Math类与随机数使用 java中提供了一个Math类,是一个工具类,内部主要包含的是一些工具方法,比如,求两数的最大值,最小值, 绝对值,四舍五入,随机数;这些所有的方法都可以直接通过类名称调用。 ```java //随机获取从0.0~1.0(不包含)之间浮点数 //0.000000~0.999999 //0~9.999999 + 1 double d = Math.random(); System.out.println(d); //随机1~10之间的整数? int i = (int)(Math.random() * 10) + 1; System.out.println(i); //随机从[0,10]之间的整数 开闭区间 0.99 * 11 i = (int)(Math.random() * 11); System.out.println(i); //随机获取从[5,10]之间的值? i = (int)(Math.random() * 6) + 5; System.out.println(i);
收藏

上一篇Java学习手册

下一篇Java语言基础

  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜