提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
我自己呢也只是一个二本院校的学生,然后想趁着这个假期,自学一下Java,在这之前还没有写过笔记记录自己的学习,然后加上自己是一个三分钟热度的人,所以就想乘着这次机会尝试谢谢文章,以做到日后的回顾以及对于三分钟热度做出一点应对!
一,Java概述
1.简单Java程序及调试步骤
1.1.编译期
将.java源文件交给编译器编译成.class字节码文件的过程。
1.1.1编译源程序
可以用任意编译器(如Edit,记事本或IDE集成开发环境中的编译窗口)编辑源程序文件。
1.1.2编译生成字节码文件(.class)
这里要用到JDK的Java编译器程序(jabac.exe),其目的根据Java源程序文件(.java)语义产生一个对应的字节嘛文件(.class),它是一个与平台无关的二进制文件。
1.2运行期
把编译后的.class字节码文件经过JVM加载并运行.class字节码文件。
(1)跨平台的:软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行;
(2)面向对象:指以对象为基本粒度,其下包含属性和方法;
(3) 安全性:可以分为四个层面,即语言级安全性、编译时安全性、运行时安全性、可执行代码安全性;
多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理;
一次编程到处使用:Java源代码的书写不拘泥于特定的环境,可以用记事本、文本编辑器等编辑软件来实现,然后将源文件进行编译,编译通过后可直接运行
二,Java语言基础
1. Java符号
1.1 标识符
在程序中,通常要为各种变量,方法,对象和类等加以命名,将所有由用户定义的名字称为标识符。Java语言中,标识符以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。长度没用限制。
关于标识符需要注意以下几点:
- Java的保留字(关键字)不能作为标识符,如if,int,public等;
- Java是大小写敏感的语言,所以A1和a1是两个不同的标识符;
- 标识符能在一定程度上烦恼一个它所表示的变量,常量,类的意义,即能见名知义;
按照一般习惯,变量名和方法名以小写字母开头,而类名以大写字母开头。如果变量名包含了多个单词,则单词组合时,每个单词的第一个字母大写,如isVisible。
合法标识符 | 非合法标识符 | 不合法原因 |
tryAgin | try# | 不能含有“#” |
group_7 | 7group | 不能以数字开头 |
opendoor | open-door | 不能出现减号,只能有下划线 |
boolean_1 | boolean | 关键字不能作为标识符 |
1.2 关键字
Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
java关键字共53个(其中包含两个保留字const,goto)
详解见:【java基础】java关键字总结及详解_java zero是关键字吗_君生吖的博客-CSDN博客
1.3 分隔符
在Java中,圆点,分号,空格和花括号等符号具有特殊的分隔作用,将其称为分隔符。
- 分号(;):语句的分割,表示一句话结束,好比咱们使用的句号。
- 花括号({}):表示一个代码块,是一个整体,花括号要成对使用。
- 方括号([]):定义数组和访问数组元素时使用。
- 圆点(.):类和对象访问它的成员时使用。
- 空格():把一整条语句分割成几段,空格的次数不限制,好比一句英文里单词都要分开写一样。
- 注意:必须都是半角下的英文符号。;ab;ab
1.4 注释
注释是程序中的可选部分,但在程序中的关键部分书写注释是良好的习惯。 清楚必要的注释可以增强程序的可读性。Java中的注释有三种,如下:
1、单行注释
以双斜杠“//”标识,只能注释一行内容,用在注释信息内容少的地方。
int c=++a;//执行完这行代码前,先自增,再给c赋值
2、多行注释
包含在“/*”和“*/”之间,能注释很多行的内容。为了可读性比较好,一般首行和尾行不写注释信息(这样也比较美观好看),见一下代码。
package com.practice;
import java.util.Scanner;
//写一个计算器,实现加减乘除功能,并能够循环接收新的数据,通过用户交互实现。
/*
思路:1.写四个方法:加减乘除
2.利用循环+switch进行用户交互
3.传递需要操作的两个数
4.输出结果
*/
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextDouble()) {
double a = scanner.nextDouble();
String c = scanner.next();
double b = scanner.nextDouble();
switch(c){
case "+":
add(a,b);
break;
case "-":
minus(a,b);
break;
case "*":
multiply(a,b);
break;
case "/":
except(a,b);
break;
}
System.out.println("输入任意字母退出");
}
scanner.close();
}
public static void add(double num1, double num2) {
System.out.println("输出结果:"+ (num1 + num2));
}
public static void minus(double num1, double num2) {
System.out.println("输出结果:"+ (num1 - num2));
}
public static void multiply(double num1, double num2) {
System.out.println("输出结果:"+ (num1 * num2));
}
public static void except(double num1, double num2) {
if(num2==0){
System.out.println("分母不能为0");
}else{
System.out.println("输出结果:"+ (num1 / num2));
}
}
}
- 注意:多行注释可以嵌套单行注释,但是不能嵌套多行注释和文档注释。
3、文档注释
包含在“/**”和“*/”之间,也能注释多行内容,一般用在类、方法和变量上面,用来描述其作用。注释后,鼠标放在类和变量上面会自动显示出我们注释的内容。
package test;
/**
*文档注释
*可以注释多条内容
*/
public class Test{
public static void main(String[] args){
System.out.println("注释方式");
}
}
- 注意:文档注释能嵌套单行注释,不能嵌套多行注释和文档注释,一般首行和尾行也不写注释信息。
2.数据类型与变量
2.1.1 数据类型
- Java语言中的数据类型分为两大类,分别是基本类型和引用类型。程序中需要处理许多数据,对于不同数据都有其对应的数据类型,其实就是在内存中开辟一个存储空间来存放数据,不同数据所开辟的内存大小也会不一样。
2.1.2 8种数据类型
2.1.3 基本数据类型的字节数及表示范围
- 整型(4个): byte(字节型)、short(短整型)、int(整型)、long(长整型)
byte a = 100;
short s = 1000;
int a = 100000;
long a = 100000L;
注. 声明long类型数据的时候,后面需要加L或者l (一般加大写L);
- 浮点型(2个):float(单精度型/浮点型) 、double(双精度型)
float f1 = 1.1f;
double d1 = 1.2;
注:
声明float类型的数据的时候加f或者F;
double类型的数据的有效位数 15~16;
float类型的数据有效位数是 6~7;
- 字符(1个): char(字符型)
**注.**声明char类型的数据的时候,使用单引号声明。并且单引号里面只能放一个元素;
char name = 'a'
- 布尔类型:(1个): boolean(布尔类型)
一般用来做逻辑判断,一般用于流程控制,数据值只有true或false,适用于逻辑计算。
2.1.4 数据类型之间的转化
1.自动类型转换
自动类型转换:容量小的类型自动转换为容量大的数据类型 --> 总结:小容量转大容量
public static void main(String[] args) {
//1.多个类型数据混合运数时,系统会按最大的类型进行转换
int a = 10;
//float a1 = a + 1.1; //错误 结果类型一个是double
float a2 = a + 1.1F; //结果类型一个是float
double a3 = a + 1.1; //结果类型一个是double
//2.容量大的赋值给容量小的肯定会报错
//int b = 1.1; //错误 原因:double -> int
//3.(byte,short) 和 char之间不会相互自动转换
byte b1 = 10; //正确
int b2 = 1;
//byte b3 = b2; //错误 原因:变量赋值,判断该类型
//char c1 = b1; //错误 原因:byte不能自动转换为char
//4.byte,short,char该三个数据类型计算,计算时首先转换为int类型
byte c1 = 1;
short c2 = 2;
//short c3 = c1 + c2; //错误 原因:计算时首先转换为int类型
int c3 = c1 + c2; //正确
}
2.强制类型转换
强制类型转换:将容量大的数据类型转换为容量小的数据类型 --> 总结:大容量转小容量
public static void main(String[] args) {
//1.精度降低或溢出
int i = (int) 1.9; //结果 1
//2.强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
//int x = (int) 10 * 3.5 + 6 * 1.5;//编译错误
int x = (int) (10 * 3.5 + 6 * 1.5);//正确 (int)44.0 -> 44
//3.char类型可以保留int的常量值,不能保存int的变量值需要强转
char c = 100; //保留int的常量值
int i = 100;
//char m = i; //错误
char m = (char) i; //正确
}
3.隐含强制类型转换(初始化)
- 在变量的初始化时,整数的默认类型是 int。byte b = 123; 123 默认是 int 类型,他会隐含强制转换为低级别的 byte 和 short 类型,所以不用显示强制转换;但是 int 类型只能显式强制转换为 long 型,所以 long a = 123L;
- 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。
2.2 常量
2.2.1 概念
即在程序运行过程中,其值不可以发生改变的量。
2.2.2 分类
常量类型 | 说明 | 列子 |
整型常量 | 有十进制数、八进制数(以0开头)、十六进制(以0x或0X开头)三种形式。默认在内存中占 32 位。当运算过程中所需值超过 32 位长度时,可以把它表示为长整型(long)数值。长整型类型则要在数字后面加 L 或 1, 如 697L,表示一个长整型数,它在内存中占 64 位 | 十进制形式:54,八进制形式:0125,十六进制形式:-0x16 |
实型常量(浮点数) | 有十进制数形式和科学计数法形式(用e或E)。默认在内存中占 64 位,是具有双精度型(double)的值。单精度型数值一般要在该常数后面加 F 或 f,如 69.7f,表示一个 float 型实数,它在内存中占 32 位 | 十进制数形式:12.34,科学记数法形式:32E3 |
布尔型常量 | 表示真假 | 只有两个值,即 false(假)和 true(真) |
字符型常量 | 用单引号引起来的一个字符 | ‘e’,‘E’ |
字符串型常量 | 用双引号引起来的一串字符 | “HelloWorld” |
空常量 | 一个特殊的值,空值 | 值为:null(不能直接打印,要以字符串形式打印) |
2.2.3常用转义字符(字符型常量延伸)
转义字符 | 说明 |
---|---|
\ddd | 1~3 位八进制数所表示的字符,例如:\007 |
\uxxxx | 1~4 位十六进制数所表示的字符,例如:\u0001 |
\' | 单引号字符 |
\" | 双引号字符 |
\\ | 反斜杠字符 |
\r | 回车 |
\n | 换行 |
\b | 退格,例如输出"1234\b56" 的结果是12356 |
\t | 横向跳格 |
转义字符既可用单引号括起来,也可用双引号括起来。
2.3 变量
- 概念:在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在内存单元中,每个内存单元都用一个标识符来标识,这些用于标识内存单元的标识符就称为变量,内存单元中存储的数据就是变量的值,Java中的变量必须先声明后使用。
- 格式:类型 变量名[=值][,变量名[=值],...];
- 说明:格式中方括号表示可选布凡,其含义是在定义变量是可以设置的初始值,如果在同一语句中要声明多个变量,则变量之间要用逗号隔开。
2.4 运算符与表达式
2.4.1 概念
表达式
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。