一、JAVA简介
(1)计算机简叙
计算机: 硬件+软件
软件: 操作系统 + 软件
操作系统: 和硬件交互
用户一般在操作系统层面上进行安装额外的软件(office,qq)
常见的操作系统: windows win10 win7 dos
unix linux ubuntu centos debian rethat
mac os
红旗 麒麟
鸿蒙
微软(个人办公): win
服务器: unix
苹果: mac os
移动端: android
ios
诺基亚 塞班
winPhone
计算机编程语言:
java,c,c++,python,php,javascript,c#,.net,go,html,css,perl,lua,…
(2)JAVA简介
java:
计算机编程语言
编程:按照一定规则编写代码
编写程序
程序:能够被计算机识别和运行的指令
java的发展:
1991年,sun公司为了抢占电子市场,成立Green项目小组,在C++的基础之后开发一门新的语言 Oak 保留了C++的优点,去除了C++复杂和不常用的语法
由于硬件厂商根本不感兴趣 所以 项目搁置
由于互联网的发展 需要 跨平台的访问
1994年,帕特里克·诺顿写了一个小型万维网浏览器WebRunner
1995年,sun公司重启Oak,应用于互联网市场 Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java
1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0)
1998年12月8日,第二代Java平台的企业版J2EE发布。
1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:
J2ME(Java2 Micro Edition,Java2平台的微型版) 应用于移动、无线及有限资源的环境;
J2SE(Java 2 Standard Edition,Java 2平台的标准版)
应用于桌面环境;
J2EE(Java 2Enterprise Edition,Java 2平台的企业版)
应用于基于Java的应用服务器。
2009年,甲骨文(oracle)公司宣布收购Sun
java之父: 詹姆斯.高斯林
java课程:
linux系统
java基础 java语法 java类库
javase javeee
前端页面 html css javascrpt jquery bootstrap validate vue.js
数据库
oracle mysql redis
框架
项目
java跨平台:
在任何平台下面 java程序是一模一样的
jvm java虚拟机
安装jdk时,在不同的平台上会安装不同的版本
jvm 运行在操作系统上面 和 操作系统进行交互
java程序运行在jvm上面 只和jvm交互
IDE:
intergrated development environment
集成开发环境
集编辑、编译、调试、运行于一体的图形界面工具
eclipse
二、java环境安装
(1) JDK: java development kit java开发工具
JDK:
jre 和 tools
bin: 存储java开发的命令
javac 编译
java 运行
db:
include: 头文件 .h
jre:
lib: java架包 .jar .lib
src.zip java核心 源代码
在windows下面的命令行模式:
java -version 查看jdk版本
下载和安装:
链接: https://blog.csdn.net/zhys0902/article/details/79499329?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159408842619724845043769%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159408842619724845043769&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-79499329.first_rank_ecpm_v3_pc_rank_v2&utm_term=java环境安装
(2) 第一个JAVA程序:
第一步:新建文本文件,编辑代码
// 单行注释
/*
多行注释
*/
/**
文档注释
*/
// HelloWorld.java
/*
一个文件中最多只能有一个public修饰的类
可以有多个类
public修饰的这个类,名字必须和文件名相同
*/
// public: 修饰词 - 修饰的是class
// class: 类 - 文件
public class HelloWorld {
// 程序入口 - 主方法main - 固定写法
public static void main(String[] args) {
// 要执行的代码第一行
// 打印一句话
System.out.println("Hello World!随便");
}
}
第二步:保存退出,修改文件名为 HelloWorld.java
第三步:通过命令行,找到该文件所在的路径用
javac HelloWorld.java 编译代码
如果程序没有错误将生成 HelloWorld.class文件(字节码)
第四步:java HelloWorld 运行java程序
如果能够看到打印出来 Hello World! 说明 jdk安装和配置没有问题
(3) JRE: java runtime environment java运行环境
一个java程序运行的最小环境
jvm: java vritual machine java虚拟机
librairy: 类库
三、java基础语法:
java8种基本数据类型:
整数类型:byte short int long
浮点类型:float double
字符类型:char
布尔类型:bool
java只有两种数据类型:基本数据类型、引用数据类型
类型 内存(字节) 表示范围
byte 1 [-128,127] -2^7,(2^7) -1
short 2 [-32768,32767] -2^15,(2^15) -1
int 4 [-2^31,(2^31) -1]
long 8 [-2^63,(2^63) -1]
float 4 +-3.4*10^38
double 8 +-1.79*10^308
char 2 [0,65535]
bool 1 true false
内存单位:
1T = 1024G
1G = 1024MB
1MB = 1024KB
1KB = 1024B Byte
1B = 8bit
二进制:
表示正负 用二进制最高位来表示符号 0表示正数 1表示负数
原码:正数用原码表示
反码:负数的反码为各位取反
补码:负数在计算机用补码表示
0111 1111
2^6+2^5+2^4+2^3+2^2+2^1+2^0 = 2^6+2^5+2^4+2^3+2^2+2^1+2^0 + 2^0 - 2^0 = 2^7 -1 = 128-1
电影 图片 一段文字 在计算机内存中或者在硬件中是 二进制
二进制 0和1
整数: 十进制(0-9数字组成) 二进制(0和1组成)
19 ---> 0001 0011 原码
-19 ---> 1001 0011 原码
1010 0110 显然不等于0
19+(-19) = 0
反码: 负数 符号位不变 其它位按位取反
19 ---> 0001 0011
-19 ---> 1110 1100 反码
1111 1111 -0 = 0
3-5 0000 0011
0000 0101
1111 1110 = -1
补码: 负数 符号位不变(永远为1) 其它位按位取反+1
19 ---> 0001 0011
-19 ---> 1110 1101 补码
0000 0000 = 0
3-5 0000 0011
0000 0101
1111 1110 补码 -1 1111 1101 取反 1000 0010 = -2
二进制 其实是 补码形式
计算机中保存数据都是以补码的形式保存
1000 0000(补码) = -128 补码
1111 1111 按位取反 1000 0000(原码) = -128
-128= 1000 0000 1111 1111+1 1000 0000
byte b = 127; 0111 1111 + 1 = 1000 0000
++b;
八进制: 由0-7组成
在java中以0开头开示
03234 0177 八进制一位对应3个二进制位
011010011100 001111111
十六进制:由0-9,a(A)-f(F) 组成
在java中以0x 或者 0X 开头
0x34FA 0Xbb3c 十六进制一位对应4个二进制位
0011010011111010 1011101100111100
以byte为例:
65 -97 -38 二进制(补码)
0100 0001
1001 1111
1101 1010
十进制 8进制 16进制
0110 0111 103 0147 0x67
1001 0011 -109 0223 0x93
1111 1101 -3 0375 0xfd
java程序中保存数据:
变量
声明变量: 在内存中划分一片内存空间
数据类型 变量名;
变量必须先声明才能使用
声明初始化:给内存区域写入一个数据
第一次给变量赋值
给变量赋值时候注意 别超出变量能够保存的数据范围
能够直接把一个在byte表示范围之内的字面值赋值给byte变量(直接赋值) 能够把一个常量表达式结果在byte表示范围之内的结果赋值给byte变量 不能把一个含有int、short、long类型变量的表达式的结果赋值给byte变量
声明规则:
由数字、字母、下划线、$组成
不能由数字开头
不能和关键字冲突 public static void int const
main不是关键字
变量名允许是中文 但不建议
变量必须初始化之后才使用访问
public class TestVariable {
public static void main(String[] args) {
// java变量
// 1.声明变量 数据类型 变量名
int age = 10; //在内存中划分了四个字节的内存 保存了10
System.out.println(age);//变量必须先声明才能使用 变量必须初始化之后才能访问其内容
// 2.变量名规则
//int 123abc;
int abc123;
int _123abc;
int _1;
int a_;
//int 1_a;
int $abc;
int 年龄 = 18;
System.out.println(年龄);
//int if;
//int while;
int main = 119;
System.out.println(main);
byte b1 = 127;//0111 1111 + 0000 0001 = 1000 0000 = -128
System.out.println(b1);
//byte b2 = 128; byte 存储范围[-128,127] 超出这个范围将报错
//b1 = 127+1; 超出范围
++b1;
System.out.println(b1);
//b1=b1+1;
b1 = 120 + 4;//120+4
int a = 120;//127
//b1 = a + 4;//a是int类型的变量
}
}
四、java基础数据类型:
整数类型:byte short int long
java中所有的整数字面值,默认是int类型
如果需要表示一个在int范围之外的字面值时需要在末尾加上 l/L
//long l = 21000000000;//错误 整数不能表示
long l = 2100000000000l;
l = 2100000000 + 2100000000; //int+int 结果等于int
System.out.println(l);//-94967296
l = 2100000000l + 2100000000;//long+int == long
System.out.println(l);//4200000000
public class TestInteger {
public static void main(String[] args) {
//整数 byte short int long
byte b = 127;
short s = 32767;
int i = 2100000000;
//long l = 21000000000;//错误 整数不能表示 210亿多 java中整数字面值默认是int类型
long l = 2100000000000l;
l = 2100000000 + 2100000000; //int+int 结果等于int
System.out.println(l);
l = 2100000000l + 2100000000;//long+int == long
System.out.println(l);
int x = 0324;
}
}
public class Demo02Type {
// 数据类型之 - 整型
public static void main(String[] args){
// 整型变量不能超出实际有效范围
byte b = 10;
System.out.println("b: " + b);
short s = 128;
int i = 2100000000;
// 整数的直接量、字面量默认类型都是int
// 想要表示long类型,需要追加 l/L
long l = 21000000000l;
// 获得当前系统时间 - 毫秒 1594025072454
long time = System.currentTimeMillis();
System.out.println("现在时间:" + time);
// long = 0: 1970年1月1日 00:00:00
s = b; // 小范围赋值给大范围,允许 - 自动类型转换
b = (byte)s; // 大范围赋值给小范围,不允许,除非强制类型转换
}
}