java初学者必备宝典,介绍,安装,基础数据类型要的都有

java初学者必备宝典

今天我开始学习了Java语言,开始了我i的新目标人生的新篇章。
程序
程序=算法+数据结构

用户使用编程语言实现问题域到解域的映射,细节描述就是算法
汇编语言–贴近于硬件设备
高级语言–C#、Java–贴近于自然语言–需要编译过程将高级语言所编写的程序转换为计算机能够识别的01码
中级语言–C

Java

一种编程语言、一种开发环境、一种应用环境、一种部署环境
IDE工具:集成开发环境 Eclipse IDEA
Java 主要技术分支
JavaSE【J2SE】:Java标准版,主要用于桌面应用或者局域网应用开发
Java 语言核心类: 数据库连接, 接口定义,输入/输出和网络编程
JavaEE【J2EE】:java企业版,主要用于企业级电子商务应用开发
包含JAVA SE中所有类,并且还包含用于开发区企业级应用的类,如EJB, Servelet, JSP. XML… J2EE目前已成为开发电子商务应用的事实标准
企业级的概念:跨地域性、数据来源复杂性
JavaME【J2ME】:java精简版,主要用于受限环境开发
Android所替代

JAVA安装环境

官方网站 oracle.com
LTS长期支持版,如果不是LTS则表示半年更新一次
目前LTS有2个版本: javaSE11(2026)和javaSE8(2030,目前主流仍旧是8,但是极客类型的公司可能会使用最新版)
注意:在JDK的安装路径中不要出现中文、空格之类的特殊符号

配置3个参数(环境变量—系统变量):
JAVA_HOME:JDK的安装路径,例如C:\Java\jdk1.8.0_172
CLASSPATH:其中的值有3个,在Windows下使用分号进行分割,苏若在Linux下使用冒号做分割
.表示当前目录
C:\Java\jdk1.8.0_172\lib\rt.jar
C:\Java\jdk1.8.0_172\lib\tools.jar
Path:注意是修改,不是创建,不要删除旧有配置,否则可能windows无法正常使用
在配置的末尾追加;C:\Java\jdk1.8.0_172\bin;

验证:在命令上运行命令
java -version查看当前jdk的版本号
javac -version查看当前jdk的版本号

linux下安装jdk

如果在Linux下安装Oracle JDK,则需要首先卸载系统默认安装的OpenJDK rpm -qa | grep java查看系统中所安装的java套件
。 -q使用询问模式,当遇到任何问题时,rpm指令会先询问用户o -a查询所有套件
o-e<套件档>或–erase<套件档>删除指定的套件–nodeps不验证套件档的相互关联性
rpm -e -nodeps后面跟系统自带的jdk名- rpm -ivh jdk-8u181-linux-x64.rpm
·编辑profile文件
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64注意这里是具体的交装位置2
3
export
CLASSPATH=.:$3AVA_HOME/jre/1ib/rt.jar:$3AVA_HOME/1ib/dt.jar: 3 A V A H O M E / l i b / t o o l s − j a r e x p o r t P A T H = 3AVA_HOME/lib/tools-jar export PATH= 3AVAHOME/lib/toolsjarexportPATH=JAVA_HOME/bin : $PATH
·保存退出后,执行source命令生效
source letc/profile
-测试是否安装成功:

java -versionIDE工具

集成开发环境IDE是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套
Edipse是一款基于Java的开源可扩展开发平台,Eclipse不是一门编程语言,而是一个框架和一组服务。Edipse为开发者提供了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。虽然Edipse是使用Java语言开发的,但它的用途并不限于Java语言;还提供支持CIC++、COBOL、PHP、Android等编程语言的插件。

Hello Java
1、定义记事本之类的无格式纯文本编辑工具编写第一个Java程序,命名为Hello.java
提示:Java语言是一种严格区分大小写的编程语言
public class Hello{
public static void main(String[] args){
System.out.println(“Hello Java”);
}
}
源代码是无格式纯文本文件
Java是面向对象的编程语言,所以定义程序的开始就是定义类的开始 public class 类名称
Java使用的是Unicode编码字符集,所以实际上定义类名称可以使用中文,但是不建议
最早的编码字符集是ANSI组织提出的ASCII码,其中包括所有英文字符
包括所有欧洲文字的ISO8859-1编码字符集,目前互联网默认的编码字符集
以上两个编码字符集都是单字节编码,使用8个0/1码表示一个字符
中国最早提出了GB2321编码字符集,其中只包含了2000多个常用汉字
Unicode编码又称为统一编码字符集,包含全世界范围内使用人数超过1000人的所有语言文字,采用多字节编码,其中实现方式有utf-8、utf-16等
一个文件中可以定义无数个类,但是只能有一个public class类,要求类名称必须和文件名称一致。例如类名为Hello,则文件名称必须为Hello.java

main方法的名称不允许作任何调整,包括大小写,这是程序的执行起始点。方法签名为public static void main(String[] args){}

在Java中语句以;收尾,System.out.println用于实现在屏幕上输出字串内容,所谓的字串就是双引号中所包含的字符序列

2、使用JDK中提供的编译工具javac完成代码的编译,将字符编写的源代码文件转换为后置为.class的二进制文件,这种文件一般称之为字节码文件
javac Hello.java

一般情况下一个class对应一个.class字节码文件,这个文件具备跨平台性【软件、硬件】

3、使用JDK中提供的解释器java进行代码的解释执行
java Hello 注意这里没有后置,这里实际上是主类【包含main方法的public class】名称,不是文件名称

如果使用文本编辑工具编写代码,问题在于没有任何提示,编码效率低;而且不停的需要进行切换【编辑发现问题–修改源代码】。所以需要使用IDE工具(集成开发环境),在工具中可以直接编写代码,编译源程序并执行
学习过程中需要熟悉3个IDE工具:Eclipse【开源组织】,IDEA和STS

Eclipse是IBM号称斥资4000万开发的通用开发平台,添加不同的插件就可以执行不同的工作,Eclipse本身就是使用Java开发的,所以进行Java开发时不用加任何插件。官方网站eclipse.org
windows下安装
可以直接下载zip后缀的文件,这实际就是一个绿色版的Eclipse,解压缩后可以直接使用

File->new->java project。在Eclipse中所有的代码采用的是项目制进行管理,对应的是一个在workspace中的文件夹

当前Eclipse默认使用javaSE-15,但是当前实际安装的是JDK8,所以需要进行配置【只配置一次】

先删除默认的配置,然后add添加

添加完毕后需要选用配置

开发工作台面

创建类

运行程序

运行时报错
Exception in thread “main” java.lang.UnsupportedClassVersionError: test01/Hello has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 52.0
首先baidu了解报错的具体原因,可能的原因是JDK的版本不匹配
配置IDE工具的编译器

直接运行则在工作台下方出现一个console窗口,其中就是在命令上运行结果的显示

人为打开console窗口

Java的三种核心机制

Java虚拟机JVM
JVM创造一个内部运行时系统(runtime system来执行Java代码,包括:加载.class字节码文件、管理内存、执行垃圾收集。
在这里插入图片描述

Java运行时环境JRE
Java不能直接操作内存,没有地址和指针的概念。但是提供了GC机制
Java程序并不是在本机操作系统上直接运行,而是通过Java虚拟机向本机操作系统进行解释来运行。这就是说,任何安装有Java虚拟机的计算机系统都可以运行Java程序,而不论最初开发应用程序的是何种计算机系统
java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系统的种类
JDK 包含JVM和其他工具,以及所有的API和相关文件
JDK:java开发工具箱,例如java解释器和javac编译器实际上都是java开发工具
JVM:Java虚拟机,具体编程是按照虚拟机为目标进行编程,不在意具体软硬件平台的区别,这是Java跨平台的依据
JRE:java运行时环境,提供系统支持
垃圾收集机制(Garbage Collection)
Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器
不再使用内存空间回收——垃圾回收
在C/C++等语言中,由程序员负责回收无用内存。Java语言消除了程序员回收无用内存空间的责任,它提供了一种系统级线程跟踪存储空间的分配情况,并在JVM的空闲时检查并释放哪些可被释放的存储空间。
垃圾收集在Java程序原型过程中自动运行,程序员无法精确控制和干预
其中参数配置实际上就是虚拟机优化的一个很重要的点
代码安全性检测Code Security
Java代码的目标运行环境在于网络,Java以牺牲执行性能为代价换取了高安全性
在运行时,执行机器只是将.class类文件通过交互后使用,一般情况下是看不到它的源代码.Java,如果想要看到.Java源程序,就要通过专用反编译工具,才能够看到。这就体现了Java在运行环境中相对其它语言来说,加强了代码的安全性
什么是Java语言
一种面向对象的语言,编写程序的开始就是定义类的开始
一种平台无关的语言,必须程序运行的解释环境
一种强鲁棒性【健壮】的语言,吸收了C/C++语言的优点,但是去掉了影响程序健壮性的部分,例如指针、内存的申请与释放等。

典型的应用场景:互联网环境

**

Java中标识符

**
字母(Unicode编码字符集)、数字、下划线和$符构成,不允许数字打头
不允许使用保留字(goto const)和关键字(public class static…)
理论上来说长度没有限制,一般要求应该见名知意
编码规范
规范实际上是一种建议性规则,不是强制性规则。一般有规则则一定有反规则。
类名首字母大写,大写字母分词,一般建议名词
例如用户名称类应该命名为UserName
方法名称首字母小写,大写字母分词
例如干饭,应该命名为ganFan
变量名称首字母小写,大写字母分词
例如考试成绩,应该命名为examScore
包名称全小写,使用域名反转的方式定义
例如给延大开发项目,可以定义包名称为edu.yanda,延大的网站域名为yanda.edu
Java是一种先编译后解释执行型的编程语言
javac Hello.java[源代码文件名称]编译,将源代码转换为虚拟机可以识别的中间性质语言ML,一般生成一个同名的后缀为class的文件【二进制文件,字节码文件】,这里就是跨平台的原理
java Hello[类名称,就是源代码中class关键字后面所跟的名称]一般是解释执行字节码文件
Java语法基础
Java是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词
System.
out.
println
( “Counted " + count + " chars.” );
同时也允许将多行代码写在一行上,注意使用分号隔开。所有的语句末尾以分号;收尾
常见的编程错误
目前的要求:将所有的程序都必须写在方法内部,不能写在方法外

使用临时变量,Java要求必须是先定义后使用,必须是先赋初值后使用

变量
变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分
例如int k=100; 其中int是数据类型,k是变量名 m

变量名称:在一个方法内部不允许出现多个同名称的变量

变量类型:
Java属于强类型编程语言,变量类型一旦声明,则不能进行修改

数据类型可以决定变量所需要的存储空间大小和对应的处理逻辑

作用域是指变量的有效范围,当变量超出所指定的范围,则自动进行垃圾回收。一般是在所在花括号范围内

JAVA是强类型语言
每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的
Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的
任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正过来

JAVA数据类型

在Java语言数据类型可以分为两大类:基本类型【原生类型】和引用类型
基本类型(原生类型)
基本类型是指不能再分解的数据类型,其数据在函数的调用中是以传值方式工作的。

简单数据类型代表单值,而不是复杂的对象,所以简单类型上不能调用方法

Java是完全面向对象的,但简单数据类型却不是,它们类似于其他大多数非面向对象语言中的简单数据类型。这样做的原因是出于效率方面的考虑。在面向对象中引入简单数据类型不会对执行效率产生太多的影响

Java编程语言有八个原始数据类型,可分为4种整型、2种浮点数、字符型数据和布尔型数据,不会随着计算机类型而变化的,注意Java具有平台无关性,所以不论硬件平台是什么,1B都是8位
整型
有4种byte字节整、short短整、int整、long长整

计算机中采用的是2进制数的方式存放整数。计算机一般提供了3种方式:原码、反码、补码。首先定义最高位为符号位,0正1负

java中的数据采用的是补码的存储方式

byte:1B(8b): -128到127

short:2B:-32768到32767
int:4B:-2147483648到2147483647
long:8B:-9223372036854775808到9223372036854775807

十进制整数。如123,-456,0
八进制整数。以0开头,如0123表示十进制数83,-011表示十进制数-9。
十六进制整数。以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18
二进制整数,以0b或0B开头,例如0b10110010

整数类缺省为int类型,如在其后有一个字母“l或者L”表示一个long值

数据溢出问题

浮点数类型
float单精度、double双精度。
语法报错的原因是12.34系统识别为double类型,将double类型赋值给float类型,需要进行窄化操作

在Java中浮点数无法精确存放,除非使用BigDecimal
BigDecimal【浮点数】和BigInteger【整数】是系统提供专供专门用于存放理论上无限位数数据的类型,但是一般不建议使用,因为计算时执行效率低下。金融系统中注意浮点数的使用问题。
使用方法错误

float:4B:1.4E-45到3.4028235E38 保存7-8位有效数据,可以使用f/F后缀进行声明
例如float f1=123.45;语法报错,float f1=123.45f;正确
double:8B:4.9E-324到1.7976931348623157E308 保存15-16位有效数据,浮点数的默认类型,可以使用D/d后缀进行声明
注意:因为浮点数无法精确存放,所以不能使用==或者!=进行判断

表示方法:
十进制数形式。由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0
科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数

如何进行浮点数的等值判断
判断两个数据之间的差值小于某个定值时则认为相等,例如|a-b|<1e-6,其中的1e-6具体值取决于业务规则
字符类型 char
Java中存放字符采用的是Unicode编码字符集,2B 0-65535
char v1=‘d’; 不能使用双引号,双引号表示字符串,单引号才是字符。引号中只能有一个unicode字符
字符a对应的Unicode码值为97
注意事项:

\u4e00-\u9fa5只匹配一个中文
布尔类型 boolean
boolean数据类型有两种文字值:true真和false假
例如boolean bb=true;
在Java编程语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值