Java基础学习笔记
注释
什么是注释
注释是在程序指定位置添加的说明下信息
简单理解,就是对代码的一种解释
注释内容不会参与编译与执行,仅仅是对代码的解释说明
不管是单行注释还是多行注释,在书写的时候都不要嵌套
这个嘛,没得可说,每个语言都有。一定要写注释,不然你真的会忘记这是什意思。然后是注释不会被执行
注释的分类
-
单行注释
// 这是一个单行注释
-
多行注释
/* 这是一个多行注释 这是一个多行注释 这是一个多行注释*/
-
文档注释
/** 这是文档注释 这是文档注释 这是文档注释 */
为什么会有文档注释,老师说给在后面将的。这个好像是用来写一些API文档帮助的。说明这个类的作用、或者接口等等javadoc
代码
public class HelloWorld{
// main方法,程序的主入口
public static void main(String[] args){
/* 输出语句
输出Hello World! */
System.out.println("Hello World!");
}
}
我用的notepad++运行的,发现报错
HelloWorld.java:2: 错误: 编码 GBK 的不可映射字符 (0xA3)
// main鏂规硶锛岀▼搴忕殑涓诲叆鍙?
^
1 个错误
看样子这是一个字符集的问题,注释不会被执行,可是他把我的注释运行了。推断是字符集的祸!
然后搜索,是字符集不匹配,就是说GBK字符集里面没有中午
如果是第一次遇到的问题,可以尝试javac -encoding UTF-8 HelloWorld.java
,这应该是指定中文编码,utf-8
关键字
什么关键字
关键字:被Java赋予了特定含义的英文单词
关键字的特点
关键字字母全部小写
常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观
在Java当中一共有50多个关键字
class
// 基本框架
public class HelloWorld{
}
用于(创建/定义)一个类
类是Java最基本的组成单元
- HelloWorld:类名
python和C里面也都有,python有35个左右。就是Java对这些单词赋予了含义,你只能按照他的用处去用,否则报错。
字面量
什么是字面量
告诉程序员:数据在程序中的书写格式
字面量的分类
字面量类型 | 说明 | 举例 |
---|---|---|
整数类型 | 不带小数点的数字 | 88,-66,… |
小数类型 | 带小数点的数字 | 13.14,-3.14,… |
字符串类型 | 用双引号括起来的内容 | “HelloWorld”,“java学习笔记”,… |
字符类型 | 用单引号扣起来的,内容只能有一个 | ‘A’,‘b’,‘我’,… |
布尔类型 | 布尔值,表示真或假 | 只有两个值:True,False |
空类型 | 一个特殊的值,空值 | 值是:null |
练习
public class ValueDame1{
public static void main(String[] args){
// 整数
System.out.println(111);
System.out.println(222);
// 小数
System.out.println(13.14);
System.out.println(-5.21);
// 字符串
System.out.println("Hello World!");
System.out.println("你好 世界!");
// 字符
System.out.println('A');
System.out.println('我');
// 布尔
System.out.println(true);
System.out.println(false);
// 空值
/* null不能直接打印,
如果要打印null,只能用字符串的形式打印 */
System.out.println("null");
}
}
字面量就是数据/数值,这个东西好理解,但是这个概念好迷呀,python和C语言并没有提出过,但是这种方式并不是第一次看见。老师说这个也不能称是常量。
特殊字符
字符 | 含义 | 说明 |
---|---|---|
\t | 制表符 | 在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍,至少补一个空格,最多补8个空格。 |
练习
public class ValueDame2{
public static void main(String[] args){
// 制表符的基本用法
System.out.println("name" + "\t" + "age"); // 字符串的拼接
System.out.println("Tom" + "\t" + "23");
}
}
\n
\t
\r
…也很常用,在其他语言里面也有。
变量
什么是变量
变量:在程序的执行过程中,其值有可能会发生改变的量(数据)
使用场景
某个数据经常发生改变时,我们也可以用变量存储。当数据变化时,只要修改变量里面记录的值即可。
用户登录
变量的定义格式
数据类型 变量名 = 数据值;
数据类型:为空间存储的数据,加入类型【限制】整数?小数?…
整数类型:int
小数类型:double
变量名:为空间(小巷子)起的名字
数据值:存在空间里面的数值
等号:赋值,把右侧的数据赋值给左侧的变量
在这里我通过搜索字面量还可以这样理解。数据类型 变量名 = 数据值;
这不是定义一个变量嘛,字面量也可以是数据值。
变量的使用方式
-
输出打印
int a = 10; // 整数 System.out.println(a) // 10
数据类型是整型;变量名是a;字面量是10。
-
参与计算
int a = 10; // 整数 int b = 20; System.out.println(a+b); // 30
-
修改记录的值
int a = 10; // 整数 System.out.println(a); // 10 a = 20; System.out.println(a); // 20
变量的注意事项
- 只能存一个值
- 变量名不允许重复定义
- 一条语句可以定义多个变量
- 变量在使用前一定要进行复制
- 变量的作用域范围
数据类型 变量名1 = 数据值1, 变量名2 = 数据值2, 变量名3 = 数据值3;
int d = 100, e = 200, f = 300;
变量这里,也都是语言通用的,都有
数据类型
数据类型的分类
- 基本数据类型
- 引用数据类型
基本数据类型
数据类型 | 关键字 | 取值范围 | 内存占用 |
---|---|---|---|
整数 | byte | -128~127 | 1 |
short | -32768~32767 | 2 | |
int | -231 ~ 231 -1 | 4 | |
long | -263 ~ 263-1 | 8 | |
浮点数 | float | 1.401298e-45 ~ 3.402823e+38 | 4 |
double | 4.9000000e-324 ~ 1.797693e+308 | 8 | |
字符 | char | 0-65535 | 2 |
布尔 | boolean | true,false | 1 |
在这里就需要记忆一下了,C语言也是有这个的、也可以看出来Java是静态语言,指定好数据类型后,就不可以改变了。还有他们的数据范围,应该学会灵活运用。内存占用等等,当然现阶段不用管这么多,我是初学者,就知道int
double
就可以了。还有char
练习
public class VariableDemo3 {
public static void main(String[] rags){
// byte
byte a = 10;
System.out.println(a); // 10
// short
short b = 20;
System.out.println(b); // 20
// int
int c = 100;
System.out.println(c); // 100
// long
long d = 999999999L;
System.out.println(d); // 999999999
//float
float e = 3.14F;
System.out.println(e); // 3.14
//double
double f = 13.14;
System.out.println(f); // 13.14
//char
char g = 'a';
System.out.println(g); // a
// oolean
boolean h = true;
System.out.println(h); // true
}
}
注意
- double > float > long > int > short > byte
- long类型变量:需要加入L标识(大小写都可以)
- float类型变量:需要加入F标识(大小写都可以)
练习
public class VariableTest2 {
public static void main(String[] rags){
String name = "学Java的小明"; // 姓名
int age = 20; // 年龄
char sex = '男'; // 性别
double height = 1.80; // 身高
boolean single = true; // 单身
System.out.println("姓名:" + name);
System.out.println("年龄:" + age);
System.out.println("性别:" + sex);
System.out.println("身高:" + height);
System.out.println("是否单身:" + single);
}
}
一个名片打印,定义了一堆变量,不同类型。
标识符
什么是标识符
标识符:就是给类、方法、变量等起的名字
标识符命名规范
硬性要求
- 由数字、字母、下划线(_)和美元符($)组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
软性建议
- 小驼峰命名法:方法、变量
规范1:标识符是一个单词的时候,全部小写。
范例1:name、
规范2:标识符有多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写。
范例2:firstName
- 大驼峰命名法:类
规范1:标识符是一个单词的时候,全部大写。
范例1:Student
规范2:标识符有多个单词组成的时候,每个单词首字母大写。
范例2:GoodStudent
- 见名知意
这个也没什么可记的,给变量起名字。
键盘录入
键盘录入介绍
- Java帮我们写好一个类叫Scanner,这个类就可以接收键盘输入的数字
使用步骤
- 导包:Scanner这个类在哪
- 创建对象:表示我们就要开始用Scanner这个类了
- 接受数据:真正开始干活了。
import java.util.Scanner; // 导包
public class ScannerDemo {
public static void main(String[] args){
Scanner sc = new Scanner(System.in); // 创建对象
int i = sc.nextInt(); // 接收数据
System.out.println(i);
}
}
可以看出来这就是一个最简单的输入程序。
练习:两数求和
import java.util.Scanner; // 导包
public class ScannerTest{
public static void main(String[] args){
Scanner sc = new Scanner(System.in); // 创建对象
System.out.println("Please enter the first number");
int a = sc.nextInt(); // 接收数据
System.out.println("Please enter the second number");
int b = sc.nextInt(); // 接收数据
System.out.println(a+b);
}
}
可以看出用来两次sc.nextInt()
也就可以推断出先要多少次输入,只需要有多少个sc.nextInt()
就可以。至于这个函数是什么,我也不知道。
idea的概述和下载
idea的概述
- IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。
- 集成环境:把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。
怎么说呢,每个语言都有这么一个软件,python有pycharm,C语言也是有,但我没记住。
我在用这个工具,但我一直不理解什么是集成环境。现在这么一说和我的体验,有所了解
之前用notepad++对代码编写后我们需要先保存,然后在调出cmd,编译javac HelloWorld.java
、执行java HelloWolrd
,这些可以说是浪费时间的,如果是初学者,这样可以是理解一下Java的代码执行逻辑。但是随着以后我们技术有所增长,代码量增大,这完全可以说是落后了。
因此idea只需要编写代码,一个运行,或一个调试,就可以保存+编译+执行这一系列自动完成。还有代码补齐,自动报错功能。
什么是集成环境,我现在用notepad++写代码,用Javac编译。用Java运行。他们都是分开的。而集成环境idea,这些都放在了一起,
下载和安装
官网:https://www.jetbrains.com/idea
idea中的第一个代码
项目结构
- project(项目、工程)
- module(模块)
- package(包)
- class(类)
project(项目、工程)
以微信为例,整个微信就是一个项目
淘宝、京东等这些网站就是一个项目,
这个也不用过多记忆,一个工程,你要干什么,这个就是一个项目
module(模块)
在一个项目中,可以存放多个模块,不同的模块可以存放项目中不同的业务功能代码。
为了更好的管理代码,我们会把代码分别放在两个模块中存放。
一个完整的项目是包含一个或多个模块
在微信的下面有消息、通讯录、发现、我四个功能,也就是四个模块
可以看成相同的业务功能代码放进一个包,然后一个项目有N个模块,那么就有N个业务功能
package(包)
一个模块中又有很多的业务
为了把这些业务区分的更加清楚,就会用包来管理这些不同的业务。
包可以理解为文件夹,放相同代码的地方。
以微信消息模块为例,在消息当中要写与文字、动画、图片…相关的代码,因此把各自的代码放到各自的包里
以文字代码为例,会把与文字相关的代码放进文字文件夹,也就是包、
class(类)
就是真正写代码的地方。
就是我们写的.java
文件。
小总结
- project(项目) ——> module(模块) ——> package(包) ——> class(类)
- 一个项目中有多个模块,一个模块中有多个包,一个包中有多个类
这么一来便于管理,就和桌面文件夹一样,我就喜欢把我写的Java、python、c的代码放进不同的文件夹,或许还会细分,在哪学的等等。
新建完整项目
下载并安装好idea后的第一个项目需要新建一下。
我先创建了一个文件夹JavaStudy,表示这个里面是我的Java学习。
-
新建项目:【New Project】——【Empty Project】——【Project name】【Project location】
【Project name】:项目名称
【Project location】:项目存放目录
-
新建模块:打开【Project Structure】——【Modules】——【New Modules】——【Java】——【next】——【Module name】【Content root】【Module file location】——【Finish】——【ok】
【Module name】:模块名称
【Content root】:模块内容路径
【Module file location】:
-
新建包:右击当前模块——【new】——【package】——【包名】
也可以创建多级包【xxx.xxx.xxx】
-
新建类:右击当前包——【new】——【package】——【Java class】——【类名】
idea的项目和模块操作
类的操作
新建类
右键点击需要存放类的【文件夹】——【new】——【Java Class】——【类名】回车
删除类
右键点击需要删除的【类】——【Delete】——【OK】
修改类名
右键点击需要修改类名的【类】——【Refactor】——【Rename】——【新类名】(Shift + F6)
模块的操作
-
新建模块
【File】——【Project Structure】——【Module】——【Add】——【New Module】——【Java】——【next】——【Module name】【Module root】【Module file location】——【Finish】——【ok】
项目的操作
-
关闭项目
【File】——【Close Project】
-
新建项目
【New Project】——【Empty Project】——【name】【Location】
解释两个目录
src
:用来存放我们编写的代码文件,包out
:存放编译的文件,我还找呢,怎么没有编译产生文件
总结
这是第二天学习的内容。
学习了注释、关键字、字面、变量、数据类型、标识符、键盘录入、idea
学习的内容有点多,但是如果是已经接触过语言,C语言,那么你会发现这些事情是每个语言的必有项,只是语法稍有一点不同而已。但也是有值得记忆的地方,class定义类。数据类型,这个各语言有各自的特点,Java的输入语句。多条输入语句怎么写。现在看来就是这三部分内容有点需要记忆。其他的还好。
好了,我的学习笔记到此结束。
里面肯定有许许多多的bug,欢迎大家指出!毕竟这样成长更快。
也感谢大家可以看到这样,如果帮到了你,是我的荣幸。
谢谢大家!