Java入门

Java历史(了解)

1.诞生 SUN(stanford university network),大概于1996年发行正式的第一版,2009年SUN被Oracle甲骨文)收购.
2. java之父:詹姆斯.高斯林
3.目前学习(开发)的版本为Java 8,最新版本:Java 12,Java分为三大方向:Java SE,Java ME,Java EE,Java 9尝试把Java SE,Java ME,Java EE合起来,用模块的方式进行区分。

Java特点(了解)

1.跨平台
2.面向对象
3.健壮性

Java语言运行机制:跨平台

1. 跨平台性:通过Java语言编写的应用程序不同系统平台上都可以运行。"Write once,Run anywhere"一次编写,处处运行。
原理:Java程序不是直接运行在操作系统上,而是运行在JVM(Java virtual machine),而不同的操作系统平台需要==安装不同的的JVM。这个虚拟机只要下载安装就可以,程序员不用管,程序员只需要关注自己的Java程序就可以了。
在这里插入图片描述

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

1.编写Java代码,保存的代码的文件:.java
2.编译Java代码为字节码,字节码文件**.class**
为什么编译为字节码文件?
因为JVM只认识字节码文件,不认识Java代码
3.运行字节码
字节码转成CPU能执行的机器指令

开发环境搭建

1.JVM,JDK和JVM

JDK:Java Developer’s Kit Java开发工具包
JDK = JRE + 开发工具集(javac.exe,java.exe,javadoc.exe等)

JRE:Java Runtine Environment Java运行环境
JRE = JVM + 核心类库(提前写好的代码,比如lang包,Util包等)

JVM:Java Virtual Machine Java虚拟机
运行Java程序需要用到JVM

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

2.下载与安装
网址:www.oracle.com
注意:下载时注意是什么平台,例:Windows的64位
安装:傻瓜式安装
提醒:
①以后我们作为开发人员,安装软件时,要避免中文目录
每一个软件建立自己的目录

3.卸载
①控制面板
②通过"360"或"电脑管家"进行卸载

环境变量的设置

1.为什么要配置环境变量?
希望在命令行使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录。
详情见收藏

2.查找环境变量

在这里插入图片描述

3.
用户环境变量:只针对当前用户(操作系统登陆的用户)
系统环境变量:针对所有用户

4.path -----> C:\Program Files\Java\jdk-11.0.2\bin;
英文状态/半角输入

5.如何识别环境变量配置的是哪个版本?(多个版本JDK的情况)
在cmd中输入"java -version"

第一个Java应用程序

1.注释:写一下解释的文字,给程序员看
三种形式:
(1)单行注释 //注释内容
(2)多行注释 /* 注释内容 */
(3)文档注释

2.Java的代码结构
class:类、声明类、定义类

{
	方法/函数{
		语句;
	}
}

3.代码

class HelloWorld{
	/*
	Java程序的主方法,是Java程序运行的入口 
	*/
	public static void main(String[] args){
	/* 输出语句:""中的内容,表示需要鸳鸯输出的内容*/
	System.out.println("Hello Java!");
	}
}

4.Java程序的开发步骤:
(1)编写代码
要求:保存为 .java 的源代码文件

(2)编译代码
目的:把 .java 源文件编译为 .class 的字节码文件(因为JVM只认识字节码文件
编译工具:javac.exe
如何使用编译工具?
格式:javac 源文件名.java
例如:javac HelloWorld.javajavac helloworld.java (也可以编译出来,但不建议)

(3)运行字节码文件
运行工具:java.exe
如何使用运行工具?
格式:java 字节码文件名或说是类名
例如:java HelloWorld (若写为:java helloworld 则报错
要求:可以运行的类,必须含有main方法

5.运行命令行:

d:
cd atguigu… >cd day01_code >javac HelloWorld.java >java HelloWorld

6.保存键:ctrl+s

问题一:乱码问题

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

计算机希望在全世界范围内能够无障碍的交流,开始引入万国码,Unicode编码表,这个编码表可以用它的规则表示全世界所有的字符。每个字符都有自己唯一的编码。
Unicode编码表只说了字符用什么数字表示,但是这个数字范围跨度很大。有一个字节的,两个字节的,三个字节的,四个字节等,在网络传输中出现问题。例如,我收到四个字节的数据时,该表示为四个字符呢,还是一个字符呢?后面为了解决传输问题,出现了UTF–8等编码方式,规定了到底几个字节是一个字符。

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

2.如何解决
(1)统一编码(操作系统的字符编码和源文件的字符编码)
修改当前源文件的字符编码(notepad++),让他与操作系统的字符编码一致。
操作步骤:
[编码]菜单→转为ANSI(与当前操作系统一致)编码。

如果希望之后建立的源文件,都是ANSI编码一致的,那么可以这样做:
操作步骤:
[设置]菜单→[首选项]→[新建]→[ANSI]编码

②如果源文件的字符编码不可变时,在使用Javac命令式,可以指定源文件的字符编码
操作步骤:
假设源文件的字符编码为utf-8

javac -encoding utf-8 Review01.java

3.错误:
cmd:当前代码页:GBK
源文件字符编码:UTF-8
导致:
(1)
在这里插入图片描述
(2)
或者显示:编码GBK的不可映射字符(0×99)

问题2:大小写问题

1.源文件名.java的大小写问题
源文件名不区分大小写,但是强烈建议注意大小写
例如:javac Problem1.java √
javac problem1.java √

2.字节码文件名(类名)的大小写问题
严格区分大小写
例如:java Problem1 √
java problem1 ×

3.代码中的大小写问题
严格区分大小写
例如: public static void main(String[] args){ √
public static void main(string[] args){ ×

问题3:格式问题

1.{}问题
风格1(推荐)

class 类名{
	方法名{
		System.out.println();
}
}

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

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

例如:

class Problem2{
	public static void main(String[] args){
		System.out.println("xxxxx");
		
		for(int i = 0;i<5;i++){
			System.out.println("xxxxxx");
		}
	}
}

格式:①每一级缩进一个tab键
②{在行尾,"}“与和它成对的”{"的行首对齐

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

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

例如:
javac Problem4.java
java Problem4

2.源文件名和类名不一致
例如:

class Problem4{
	public static void main(String[] args){
		System.out.println("源文件名和类名一致");
}
class Other{
	public static void main(String[] args){
		System.out.println("源文件中有另一个类");
}

如果要运行Other要怎么做:
javac Problem4.java
java Other

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

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

注意:
平时开发中,一个Java文件只写一个类,除非有内部类
而且源文件名和类名一致,后期好维护(好维护的意思是好修改,类名和源文件名一致,直接找到与类名一致的源文件名修改)

5.main方法必须在public类中吗?
不是,但是后面写代码时,基本上main方法习惯上都在public类中

练习1:打印个人信息

1.数据类型
“柴林燕” -->字符串
18–>整数,整型
‘女’–>字符,单个字符
true–>布尔值,逻辑值,它只有两种情况,true和false
40.5–>小数类型
2.常量
字符串的常量必须用""(双引号)
单字符的常量,必须用’’(单引号)
其他整数、小数、布尔等不需要加符号。

System.out.println(xx); 输出xx之后换行,ln==line
System.out.print(xx);输出xx之后不换行,下面的输出内容就会接着输出
*/

class TestExer1{
	public static void main(String[] args){
		System.out.println("柴林燕");
		System.out.println(18);
		System.out.println('女');
		System.out.println(true);
		System.out.println(40.5);
		System.out.println("--------------------------------");
		
		System.out.print("姓名:");
		System.out.print("柴林燕");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值