01-JAVA语言概述与开发工具
计算机语言概述
软件开发
人机交互
图形化界面
命令行方式
计算机语言
Java语言简介
Java概述
Java图标
Java名称的由来
我们所见到的Java标志,总是一杯热咖啡,这杯热咖啡你很难与计算机编程联想到一起。
这杯热咖啡、Java这个名字的由来,是Java创始人员团队中其中一名成员由于灵感想到的
想起自己在Java岛(爪哇岛)上曾喝过一种美味的咖啡.
类文件的前四个字节如果用十六进制阅读的话,分别为CAFEBABE,就会拼出两个单词“CAFEBABE”(咖啡宝贝)
于是这种计算机编程语言就命名为Java,与此同时它的标起来是我们最熟悉不过的一杯热咖啡。
Java之父
高斯林
1991年,在Sun公司工作期间,高斯林和一群技术人员创建了一个名为Oak的项目,
开发运行于虚拟机的编程语言,同时允许程序在电视机机顶盒等多平台上运行。
后来,这项工作就演变为Java。随着互联网的普及,尤其是网景开发的网页浏览器的面世,
Java成为全球流行的开发语言。因此被人称作Java之父。
Java能够做什么
1.可以制作网站
2.可以做Android
3.可以做游戏
4.可以做软件
Java语言特性
1.简单易用
2.面向对象
3.安全性高
4.多线程
5.跨平台
平台相关性
我们称能够支持程序运行的硬件或软件环境为平台。
windows系统只能运行windows的可执行文件(exe)
linux系统只能运行linux的可执行文件
windows的可执行文件,不能直接运行在Linux上面, 反之亦然。
Java运行环境
跨平台原理
不同的操作系统自己专门识别的软件格式
如果只编写一个Java程序是无法办法在各个系统上运行
Java单独开发了一套(各个平台)一个Java虚拟机的程序
编写的Java程序不需要运行在系统当中
而是运行在系统安装的Java虚拟机当中.各个平台上的Java虚拟机都能识别编写的Java程序
JVM/JRE/JDK
JVM
Java虚拟机(Java Virtual Machine)它是运行所有Java程序的虚拟计算机
有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行
JRE
JRE是java runtime environment(java运行环境)
光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库lib
jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre
JDK
JDK是java development kit(java开发工具包)
程序员做Java开发时所需要的一些工具Javac.exe/jar.exe Java基础的类库/API
关系
JDK包含JRE,而JRE包含JVM
下载安装
https://www.oracle.com/technetwork/java/javase/archive-139210.html
环境变量配置
配置环境变量的目的:
当查找一个命令的时候,会默认到当前目录当中去查找执行
如果当前目录当中没有,就会到系统的环境变量当中查找
配置环境变量的步骤:
第一个Java程序
第一个Java程序HelloWorld
class Hello{
public static void main(String[] args){
System.out.print("Hello World");
}
}
1.将Java代码编写到扩展名为.java的文件当中
2.通过javac命令对该java文件进行编译,并生成一个扩展名为.class的文件
3.通过java命令对生成的class文件进行运行
我们生成字节码的名称它是跟class的名称一样的。
如果我们在calss前添加了一个public,那么你的文件名称必须得要跟class的名称保持一致
Java编译过程
Idea开发工具使用
intellij idea介绍与安装
idea介绍
IDEA 全称 IntelliJ IDEA,是java语言开发集成环境
IntelliJ在业界被公认为最好的java开发工具之一
IDEA是 JetBrains
公司的产品
优点
智能代码助手、重构、J2EE支持、各类版本工具(git、svn、github等)
最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。
其他编辑功能抛开不看,这点远胜Eclipse
缺点
太过强大的自动提示会让使用者渐渐的依赖上自动提示
下载
https://www.jetbrains.com/idea/
安装
安装向导:
运行:
是否导入本地配置:
激活:
选择界面风格:
是否提前安装一些插件:
自定义插件安装:
激活
修改 host
文件
C:\Windows\System32\drivers\etc
0.0.0.0 account.jetbrains.com
0.0.0.0 www.jetbrains.com
激活码:
Y9MXSIF79G-eyJsaWNlbnNlSWQiOiJZOU1YU0lGNzlHIiwibGljZW5zZWVOYW1lIjoiSkJGYW1pbHkgQ2hpbmEiLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiIiwiY2hlY2tDb25jdXJyZW50VXNlIjpmYWxzZSwicHJvZHVjdHMiOlt7ImNvZGUiOiJJSSIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDctMjYiLCJwYWlkVXBUbyI6IjIwMjAtMDctMjUifSx7ImNvZGUiOiJBQyIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDctMjYiLCJwYWlkVXBUbyI6IjIwMjAtMDctMjUifSx7ImNvZGUiOiJEUE4iLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA3LTI2IiwicGFpZFVwVG8iOiIyMDIwLTA3LTI1In0seyJjb2RlIjoiUFMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA3LTI2IiwicGFpZFVwVG8iOiIyMDIwLTA3LTI1In0seyJjb2RlIjoiR08iLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA3LTI2IiwicGFpZFVwVG8iOiIyMDIwLTA3LTI1In0seyJjb2RlIjoiRE0iLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA3LTI2IiwicGFpZFVwVG8iOiIyMDIwLTA3LTI1In0seyJjb2RlIjoiQ0wiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA3LTI2IiwicGFpZFVwVG8iOiIyMDIwLTA3LTI1In0seyJjb2RlIjoiUlMwIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IlJDIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IlJEIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IlBDIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IlJNIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IldTIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IkRCIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IkRDIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNy0yNiIsInBhaWRVcFRvIjoiMjAyMC0wNy0yNSJ9LHsiY29kZSI6IlJTVSIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDctMjYiLCJwYWlkVXBUbyI6IjIwMjAtMDctMjUifV0sImhhc2giOiIxMzgzODYyOS8wIiwiZ3JhY2VQZXJpb2REYXlzIjo3LCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-rI4et6OSKLA4gvOzxtyp48SCWtjwsOSQBJittaw6BOVJOwVBz0p31wBWDFSdIogdRPKquk2BAou7N694entEn4/Db3Ol5uotDtUd2MHuo+BBu9QcwIoX3RTrnYLwJfTlEJfRH/3TF3WtkPGQZQQcw/23hsZzdC/WJY6tmvyTijIBScUsvIOxZ+8REbWbkTQx1KliliFyrMua7hit8LThzfffZloHciaHwUP9BjxEjU0qQi+yFacSXjxEZERJT25hZrMN+bqBxcn59/4UJBrITt8YpLIlydt0+6vMSWAMawMzKpeDEDInKy0XomauTIUfxS4sbw/dSyVdSrh+IuOc7g==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQAF8uc+YJOHHwOFcPzmbjcxNDuGoOUIP+2h1R75Lecswb7ru2LWWSUMtXVKQzChLNPn/72W0k+oI056tgiwuG7M49LXp4zQVlQnFmWU1wwGvVhq5R63Rpjx1zjGUhcXgayu7+9zMUW596Lbomsg8qVve6euqsrFicYkIIuUu4zYPndJwfe0YkS5nY72SHnNdbPhEnN8wcB2Kz+OIG0lih3yz5EqFhld03bGp222ZQCIghCTVL6QBNadGsiN/lWLl4JdR3lJkZzlpFdiHijoVRdWeSWqM4y0t23c92HXKrgppoSV18XMxrWVdoSM3nuMHwxGhFyde05OdDtLpCv+jlWf5REAHHA201pAU6bJSZINyHDUTB+Beo28rRXSwSh3OUIvYwKNVeoBY+KwOJ7WnuTCUq1meE6GkKc4D/cXmgpOyW/1SmBz3XjVIi/zprZ0zf3qH5mkphtg6ksjKgKjmx1cXfZAAX6wcDBNaCL+Ortep1Dh8xDUbqbBVNBL4jbiL3i3xsfNiyJgaZ5sX7i8tmStEpLbPwvHcByuf59qJhV/bZOl8KqJBETCDJcY6O2aqhTUy+9x93ThKs1GKrRPePrWPluud7ttlgtRveit/pcBrnQcXOl1rHq7ByB8CFAxNotRUYL9IF5n3wJOgkPojMy6jetQA5Ogc8Sm7RG6vg1yow==
创建项目
配置JRE
创建项目
设置样式与提示
主题
1.选择file-Setting
2.进入设置界面选择,选择appearance
字体大小
1.设置字体默认大小
2.鼠标滚轮改变字体大小
注释的颜色
工具栏
忽略大小写提示
自动导入
写第一次时会导入,下一次就不给自动导入了
设置自动导入:
当一个类有多个包时, 此时要自己手动来进行选择
按 alt+enter
修改光标及光标所在的行的颜色
项目选择
idea打开后,只能有一个项目
默认情况是打开上次运行的项目
设置进入idea时,选择进入哪一个项目
隐藏.idea目录
.idea;*.iml;
隐藏out目录
主题安装
下载主题:http://color-themes.com/?view=index
选择一个喜欢的主题下载后得到主题包(.jar包)
打开idea,点击 File→ Import Settings...,在弹出的窗口中选择刚刚下载的主题包
安装后需要重启 idea
进制
进制概念
什么是进制
进制:就是进位制,是人们规定的一种进位方法
对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位
二进制就是逢二进一:0/1
八进制是逢八进一
十进制是逢十进一
十六进制是逢十六进一
十进制的由来
十进制的由来是因为人类有十个手指
二进制的由来
其实二进制来源与中国
18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本 《易经》
中,
读到了八卦的组成结构,惊奇地发现0和1分别为表示数字原点的特殊数和基本数
其进位制就是二进制,并认为这是世界上数学进制中最先进的
20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制
八进制的由来
任何数据在计算机中都是以二进制的形式存在的。
二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的
但是使用一大串的1或者0组成的数值进行使用很麻烦
所以就想把一大串缩短点,将二进制中的三位用一位表示
这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。
十六进制的由来
对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况
四个二进制位最大是15,这就是十六进制:0...9 A B C D E F
进制的表现形式
二进制
由0,1组成。以 0b
(b可以大写也可以小写)开头
0b010101
0b1010
八进制
由 0,1,…7
组成。以数字 0
开头
07
7
十进制
由 0,1,…9
组成。整数默认是十进制的
十六进制
由 0,1,…9,a,b,c,d,e,f
(大小写均可)。以 0x
开头
0XF
进制之间转换
十进制转二进制
6
13
二进制转十进制
传统十进制
二进制转十进制
八进制, 与16进制先转二进制, 再进行其它进制之间的转换
0b10001111
0x8F
0b10001111
0217
计算机数据存储单位
原码/反码/补码
概念
人脑可以知道第一位是符号位,可以根据符号位对真值的绝对值进行加减乘除
但是对于计算机来说,加减乘除是最基本的运算,要设计的尽量简单
计算机辨别符号位会让计算机的设计电路变得很复杂
于是人们想出了让符号位也参与到运算上来。减去一个数,等于加上他的负数
0就代表正数,1代表负数 第1位为符号位
正数
假设机器字长(处理的位数为8位)
数字1
00000001
00000001
00000001
负数
-1
10000001 原码:符号位为1其余各位不变
1 1 1 1 1 1 1 0 反码:符号位不变,其余各位取反
1 1 1 1 1 1 1 1 补码:符号位不变,其位各位取反后加1
对补码取返加1 得到原码
语法规则
字面量和常量
程序中固定不变化的值。定义了就不能再去修改,比如:整数常量1,2,3,小数常量3.14,布尔常量false,true等。
字面量,就表示直接给出的一个值(可以是整数,小数,true,false等等),直接量。
常量分类
整数常量
小数常量
布尔型常量
字符常量
字符串常量
null常量
整数常量的表现形式
二制制
八进制
十进制
十六进制
变量
概念
其 值可以发生改变的量, 定义完毕后可以指代某一事物
定义
数据类型 变量名 = 初始化值;
特点
1.占据着内存中的某一块存储区域;
2.该区域有自己的名称(变量名)和类型(数据类型)
3.可以被重复使用;
4.该区域的数据可以在同一类型范围内不断变化;
标识符
什么是标识符
在写代码的时候为了增强代码的阅读性会自定义很多名字,比如:类名,方法名,变量名等
编程的里我们把这种为了增强程序阅读性而自定义的名称,称为 标识符
命名规则
1.由字母、数字、下划线、$组成,但不能以数字开头(注:此处的字母可以是中文等)
2.区分大小写
3.不得使用 java
中的关键字和保留字
4.不用Java中内置的类名作为自己的类名
关键字
什么是关键字
在编程语言中有一些事先定义的,有着特殊含义和用途的单词
什么是保留字
和关键字一样都是编程语言事先定义好的,只是说现在暂时没有特殊的用途
但说不定以后某天会突然被赋予意义和被使用到,因此被保留下来的单词,goto
和 const
就是Java的保留字
有哪些关键字
表达式
定义
是由数字、运算符、数字分组符号(括号)、常量、变量等以能求得结果的有意义排列的组合
用运算符号连接的变量/常量可称为表达式
注释
注释的作用
注释信息是给程序员看的
编译器(javac)在编译的时候会忽略掉源文件中的注释信息
注释分类
单行注释
//注释信息
从//开始到本行结束的所有字符会被编译器忽略;
多行注释;
/* 注释信息 /
/ *注释信息 */之间的所有字符会被编译器忽略
文档注释;
/** 注释信息 /
/* 注释信息 */和多行注释一样,除此之外还可以专门生成文档信息API