Java 笔记 1:环境搭建,乱码问题,大小写问题,格式问题,源文件名和类名的问题

Java历史

1、诞生于SUN(Standford University Network)
2、大概于1996年发布正式的第一版
3、Java之父:詹姆斯.高斯林
4、2009年SUN被Oracle(甲骨文)收购
5、目前学习(开发)的版本是Java8
6、最新版本:Java12
7、Java分为三大方向:JavaSE,JavaEE,JavaME
Java9尝试把JavaSE,JavaEE,JavaME合起来。用模块的方式进行区分。

Java的特点

(1)面向对象:关注类、对象、接口等,以及继承、实现等关系
(2)强类型:关注数据类型
(3)体系中立的:字节码.class文件
(4)垃圾回收:GC

Java语言运行机制:跨平台

跨平台性

通过Java语言编写的应用程序在不同的系统平台上都可以运行。
“Write once , Run Anywhere”一次编写,处处运行。

原理

Java程序不是直接运行在操作系统上,而是运行在JVM(Java Virtual Machine)。
而不同的操作系统平台,可以安装不同的JVM。这个虚拟机只要下载安装就可以了,
程序员不用管,程序员只要关注自己的Java程序就可以。

Java程序开发和运行的步骤:

1、编写Java代码,保存的代码的文件.java
后缀名:.txt,.doc,.jpg,.mp4等
2、编译Java代码为字节码,字节码文件.class
为什么要编译为字节码呢?因为JVM只认识字节码,不认识Java代码
3、运行字节码
把字节码再转成CPU能执行的机器指令。

开发环境搭建

JDK:Java Developer’s Kit,Java开发工具包
JDK = JRE + 开发工具集
JRE:Java Runtime Environment,Java运行环境
JRE = JVM + 核心类库(提前写好的代码)
JVM:Java Virtual Machine,Java虚拟机,
运行Java程序需要用到JVM

如果仅仅是运行Java程序,只要装JRE就可以了,不需要装JDK。
如果是要开发Java程序,那么必须安装JDK。

(2)下载与安装
网址:www.oracle.com
下载时注意:是什么平台
例如:windows的64位:jdk-8u141-windows-x64.exe

安装:傻瓜式安装
提醒:
①以后我们作为开发人员,安装软件时,要避免中文目录
②每一个软件的安装建立自己的目录

(3)卸载
控制面板

环境变量

为什么要配置环境变量?
windows等操作系统,默认是在当前路径下找“命令”等工具的。
如果我希望它在我指定的目录下去查找这个“命令”,那么我就要
在path这个环境变量中,把目录添加上去。

windows等操作系统,除了在当前目录下查找,还会去path环境变量指定的目录下搜索命令。

【计算机】-》右键-》【属性】-》【高级系统设置】-》【高级】-》【环境变量】

【用户环境变量】只针对当前用户(操作系统登录的用户)
【系统环境变量】针对所有用户的

path=D:\ProgramFiles\Java\jdk1.8.0_141\bin;之前的环境变量的值
说明:;必须是英文状态下,半角输入,用于和其他原有的环境变量的分割
Win7
D:\ProgramFiles\Java\jdk1.8.0_141\bin;D:\ProgramFiles\mysql\mysql-5.6.26-winx64-server\bin

Win10
表格形式,一行一个环境变量

注释:写一下解释的文字,给程序员看的
三种形式:
(1)单行注释 //注释内容
(2)多行注释 斜杠* 注释内容 *斜杠
(3)文档注释 比较特殊,我们在后面注解部分讲解

Java的代码结构:
类{
方法/函数{
语句;
}
}

class:类,声明类,定义类

Java程序的开发步骤:
(1)编写代码
要求:保存为.java的源代码文件
(2)编译代码
目的:把.java源文件编译为.class的字节码文件(因为JVM只认识字节码)
编译工具:javac.exe
如何使用编译工具:
格式:javac 源文件名.java
例如:javac HelloWorld.java
(3)运行字节码文件
运行工具:java.exe
如何使用运行工具:
格式:java 字节码文件名或说是类名
例如:java HelloWorld

保存快捷键:Ctrl + S

问题1:乱码问题

1、原因
计算机的世界中只有0和1,
人类世界中字符是很丰富的。

最早人类使用计算机时,硬件机器语言,00000011100001111
后来,为了使用计算机的人方便,开始引入了助记符等,可以表示更丰富的字符等信息
ASCII码:数字十进制的65表示字符A,计算机底层把65十进制再转为二进制
最早ASCII码只能表示128字符
后来计算机不仅仅在美国了,会流传到其他国家。
各个国家在ASCII码基础上扩展了128个,变成256个了,但是后面扩展的128个不具有通用性。
甚至计算机传入亚洲,就开始出现多字节编码,
例如:中国GB2312,后来的GBK,台湾等地区Big5等
越来越多的字符编码出现,但是各国之间的文档交流出现问题。

计算机希望在全世界范围能够无障碍的交流,开始引入万国码,Unicode编码表,
这个编码表,可以用它的规则表示全世界所有的字符,每一个字符都有自己唯一的编码。

Unicode编码表只说了,字符用什么数字表示,但是这个数字范围跨度很大,有
1个字节的,2个字节的,3个字节的,4个字节等,在网络传输中出现问题,
例如,我收到4个字节的数据时,该表示为4个字符呢还是1个字符呢,
后面为了解决传输的问题,出现了UTF-8等编码方式,规定了,
到底几个字节是一个字符。

不同的编码方式对同一组数据解析出来的字符是不同的

2、如何解决
统一编码

修改当前源文件的字符编码:
方式一:【编码】菜单–》转为ANSI(与当前操作系统一致)编码

如果希望之后建立的源文件,都是与ANSI编码一致的,那么可以这样做:
方式:【设置】菜单–>【首选项】–》【新建】–》[ANSI]编码
————————————————
版权声明:本文为CSDN博主「BinaryJack」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40473204/article/details/107463870

问题2:大小写问题

(1)源文件名.java的大小写问题
源文件名不区分大小写,但是我们强烈建议大家还是注意大小写
(2)字节码文件名(类名)
严格区分大小写的
(3)代码中大小写问题
严格区分大小写

问题3:格式问题

(1){}问题
风格1:推荐风格
class 类名{
方法{
System.out.println();
}
}

从右边往左边看,结尾要么是{,},要么是;

风格2:延续老的C语言风格
class 类名
{
方法
{

}

}
不建议混搭

风格3:不建议
class 类名{
public static void main(String[] args){
System.out.println(“hello”);
}}

(2)缩进问题
class 类名{
Tab键public static void main(String[] args){
Tab键Tab键System.out.println(“xxx”);
Tab键}
}

往右缩进:Tab键
往左回缩:Shift + Tab键

问题4:源文件名和类名的问题

1、源文件名和类名一致
javac 源文件名.java
java 类名

例如:
javac Problem4.java
java Problem4

2、源文件名和类名不一致
javac 源文件名.java
java 类名

例如:
javac Problem4.java
java Other

在cmd命令行,如何重新运行之前执行过的命令?
按↑,查找之前的命令
按↓,查找某个之后的命令

3、如果某个类是public,那么这个类必须与源文件名一致
换句话说,一个源文件只能有一个public类

4、一个源文件可以编写多个类吗?如果可以,编译后会怎么样呢?
如果一个源文件有多个类,那么编译后会产生多个.class文件。
字节码文件名就是类名。

平时开发中,一个.java文件,只写一个类,除非有内部类。
而且源文件名和类名一致。(因为后期好维护)

变量

变量

1、作用:用来存储值(数据)
在Java中,变量本质上,就是代表一块内存区域。
变量中的数据是存储在JVM内存中。

变量有三个要素

(1)数据类型
是用来存储:字符串、小数、整数、单个字符、布尔值、对象…
(2)变量名
在程序中,通过变量名来进行访问这块内存及其里面的数据
(3)值
变量中存的具体的值
变量中的值是可以变的

变量使用的原则

(1)先声明后使用
包括后面用到的类、方法等,都是遵循先声明后使用
(2)变量必须先初始化(第一次赋值)再访问它的值(打印、计算、比较操作)
(3)变量的声明,在同一个作用域中,只能声明一次,但是赋值可以很多次
作用域:从变量声明处开始,到它所属的{}结束

1、如何声明一个变量?
格式:
数据类型 变量名;

2、如何给变量赋值?
格式:
变量名 = 变量值;

常用的变量的数据类型(刚开始):
int(整数)
double(小数)
char(单个字符)
String(字符串)

Java中的数据类型

(1)基本数据类型(8种)
(2)引用数据类型(今天不讲)
String是引用数据类型

基本数据类型

1、整型系列
byte: 字节类型 范围:-128~127
1个字节
short:短整型
2个字节 范围:-32768~32767
int:整型
4个字节 范围:…
long:长整型
8个字节
说明:对于long类型的常量,需要加大写L(建议用大写)或小写l

2、小数类型,浮点型系列
float:
单精度浮点型,4个字节,
大概的精度范围是,把小数用科学记数法表示后,小数点后6~7位
说明:float类型的常量,需要在数字后面加F或f
double:双精度浮点型,8个字节
大概的精度范围是,把小数用科学记数法表示后,小数点后15~16位

3、字符类型
char:单字符类型,2个字节,可以表示汉字
在Java中是使用Unicode编码表表示。(兼容ASCII码)
每一个字符都有一个唯一的Unicode编码值。
例如:
数字0,Unicode编码值是48
数字1,Unicode编码值是49

字母A,Unicode编码值是65
字母B,Unicode编码值是66

字母a,Unicode编码值是97
字母b,Unicode编码值是98

如何表示char类型的字符常量呢?
(1)‘一个字符’,例如:‘女’,‘A’
(2)‘转义字符’,例如:’\n’(换行),’\t’(制表位Tab键),
‘\’(斜杠),’"’(双引号),’’’(单引号),
‘\b’(删除键Backspace),’\r’(回车键)
(3)‘斜杠u字符的Unicode编码值的十六进制形式’

4、布尔类型
boolean:只能存两个值之一:true,false
一般boolean的值用于条件判断

计算机表示数据用二进制表示,即0和1
那么一位0或1,我们用bit(位),最小单位
计算机中最基本的单位用的byte字节,
1字节 = 8位
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

扩展:
硬件厂商存储单位用1000进位,不是1024.
带宽 100Mb,b = bit

猜你喜欢

转载自blog.csdn.net/qq_40473204/article/details/107465167