Java学习记录
1.编程语言
语言: 英文、中文.... 作用: 交流沟通
计算机 - 能够识别的: 二进制 0 1
开关: 0 关闭 1 打开
0101 方向向上 0100 方向向下
将计算机认识的编码 转成人类方便识别和记忆的方式: 计算机语言
iadd 加法
汇编语言 : 指令 。 吃、走、睡...
高级语言: 相对于低级而言 , 实现逻辑上面的编程。
1.2Java语言
语言的鼻祖: C 语言 最底层是C (高级语言)
C 语言的儿子 C++ (类的概念)
Java 是 C++ 的儿子 (自动垃圾回收 GC)
java早期的名字 oak
java的起源公司: Sun
2009年:java被甲骨文收购 (Oracle)
java的创始人(java之父): 詹姆斯 高斯林java的特性:
-
高级语言 : 相对于汇编而言
-
严格检查数据类型 : 保存数据之前,先确定、声明要保存的数据是什么类型
-
面向对象: 相对的是面向过程
-
与平台无关: 一次编写,到 处运行 (java提供了不同操作系统的Jvm虚拟机 - 安卓模拟器)
-
安全 (所有的语言都说自己的安全的)
1.3面向对象 (Java)VS 面向过程 (C )
需求: 需要一台电脑玩游戏
\1. 自己了解电脑的每个组件的配置 : 耗费时间 面向过程
\2. 找个一个精通电脑的人 : 简单 面向对象
当需求变更的时候: 影视的图形处理 工作站
\1. 自己重新了解
\2. 找个一个精通电脑的人
面向对象和面向过程的区别: 面向对象利于维护和扩展 , 面向过程适合底层开发(不会变的)
C语言: 主要用于系统继承开发
Java: 应用服务器
1.4一次编写,到 处运行
java是运行在JVM虚拟机上
JVM虚拟机运行在操作系统上
不同的操作系统Java提供了不同的虚拟机
2.JDK的安装
2.1JDK(记住)
java的开发工具包: 包含JRE ,开发工具
JRE : java的运行环境,包含JVM
JVM: java虚拟机
2.2Java的开发平台(记住)
J2SE(Java 2 Platform Stand Edition) 嵌入式开发,java语言基础 例如:手机等小型电子设备的软件
J2EE(Java 2 Platform Enterprise Edition ) 分布式开发 ,基于互联网的开发 例如:网络电子商务等
J2ME(Java 2 Platform Micro Edition ) 桌面应用软件 我的世界(java,不怎么使用) 例如: 单机软件
2.3环境变量
PATH: 默认执行命令的路径, 多个路径之间使用 分号隔开
操作环境变量常用的命令
set 变量名=变量值 : 给变量赋值
set 变量名 : 查看变量的值
引用变量 : %变量名%
系统变量:所有的用户都可以使用的变量
用户变量:window是一个多用户操作系统, 只注册提供给当前用户使用的变量

使用set命令只能够临时生效,如果需要永久生效则需要修改配置
环境变量在修改后要重新打开终端
2.4 JDK的安装
注意点: JDK的安装路径不要有中文、特殊字符、空格..
建议: 创建一个文件夹用来管理JDK,解压jdk到制定的路径
切换盘符
C:\Users\jack>d:
D:\>cd D:\tools\java\jdk1.8.0_181\bin
D:\tools\java\jdk1.8.0_181\bin>
配置环境变量
新建JAVA_HOME变量

配置PATH变量

测试: 重新打开终端
C:\Users\jack>java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
注意:
JDK1.8之后不需要配置CLASSPATH,配置的通信请删除
3.第一个小程序
创建一个文件夹 java01
在java01文件加中创建 HelloWorld.java 文件 (java的源程序,编码环境)
在 HelloWorld.java 中完成编码
public class HelloWorld{
public static void main(String[] args){
System.out.println("hello world");
}
}
在notepad++里写下这个代码,然后在终端通过(javac)编译成可以执行的文件,然后运行。
D:\QQ\data\2269133874\FileRecv\java01笔记>javac HelloWorld.java
D:\QQ\data\2269133874\FileRecv\java01笔记>java HelloWorld
HelloWorld
D:\QQ\data\2269133874\FileRecv\java01笔记>
注意:
/**
main: 固定格式, 模板写法. 程序的入口, 和程序的出口
String[] args:程序接收的参数, 可以是多个参数, 多个参数之间使用空格
*/
4.变量和基本数据类型
数据类型(8种)
1.整数类型:
1.byte: 字节型:1 byte=8 bit
0000 0000 ~ 1111 1111
第一位是符号为 : 表示正数 还是 负数
其他的是指数位
-128 ~ 127
2.short:短整型:16bit
0000 0000 0000 0000 ~ 1111 1111 1111 1111
第一位是符号为 : 表示正数 还是 负数
其他的是指数位
3.int:整型:32bit
第一位是符号为 : 表示正数 还是 负数
其他的是指数位
4.long:长整型:64bit
// 长整型 : java中将整数字面量默认位是 int 类型
long l = 2147483648L; // 养成习惯加一个L , 不区分大小写。 要求大写
// 如果整型字面量的范围是 int 范围可以不加L 。 要求加
System.out.println(l);
2.浮点类型
1.float:单精度浮点型 32bit (字面量后面要加“F”)
1位符号位 8位指数为 23位尾数位(小数)
2.double: 双精度浮点型 64bit
1位符号位 8位指数为 23位尾数位(小数)
3.字符型 : char字符型:16bit
字符: 英文字面。 数字。 特殊符号 。 中文字 ....
java中以单引号来表示
布尔型:boolean只有两个值true false(都是关键字)
引用数据类型(对象类型)
1.String:字符串
2.数组
3.java类
public class Test{
public static void main(String[] args){
String word = "abc";
System.out.println(word);
char letter = 'c';
int x = 100;
System.out.println(word+x); // 当字符串和其他的数值使用+ 的时候 表示连接
System.out.println(letter+x);// 这里是加法
}
}
栈:基本数据类型、局部变量、存储数据量比较偏小、先进后出、以压栈的方式保存数据
堆:引用数据类型、存储数据量比较大、随机存储
基本数据类型转换
小类型向大类型转化
完成的是自动转换,不需要程序员操作
byte-short-int-long-float-double
整型和浮点之间转换的时候可能缺失精度,因为浮点的尾数可能会不够
大类型向小类型转化
double-float-long-int-short-byte
强制转换有可能失败
比如float转向int会舍去小数部分
int类型向char类型的转化
char是unicode码的形式保存
int->char 强制转换
char->int 自动转换
public static void main(String[] args){
char c = 'A';
int x = c; // 自动
System.out.println(x);
char cs = (char)x;
System.out.println(cs);
}
5.运算符
算术运算符
+ - * / %(取模) +=(自增) -=(自减) ++ --
算术运算的规则: java中在运算的时候会将运算符左右的数据类型自动转型一致后在进行运算
也就是说只能是两个相同的数据类型进行运算, 如果数据类型不同,则判断能否做类型转换
public class Test{
public static void main(String[] args){
int a = 10;
int b = 10;
int s = a + b ;
System.out.println(s);
long l = 20;
System.out.println(l + a); // 直接输出计算后的结果
// 下面的表达式会编译报错
// int s1 = l + a; // l + a 计算的结果是 long 类型
// 下面的代码也会报错
// byte bt = 10 + a; // 区分于 byte bt = 10 + 10; 10+10 看作是常量
byte x = 10;
// 这里也会报错
// byte bt = x + 10;
// + 在和字符串一起使用的时候表示 连接
System.out.println(x + "100");
// 除法
int a1 = 10 ;
int b1 = 3;
System.out.println(a1/b1); // 如果不能整除, 则舍去小数部分. 不是四舍五入
}
}
public class Test{
// 自增 += 自减 -=
public static void main(String[] args){
// % 取余数
int a = 10;
int b = 3;
System.out.println(a%b);
int x = 2;
x+=3; // x = x + 3;
System.out.println(x); // 5
x-=4;
System.out.println(x); // 1
// 如果自增的增量位1
x++; // x+=1 ; x = x + 1;
System.out.println(x); // 2
++x; // 在计算结果上面和 x++ 是一样的
System.out.println(x); // 3
System.out.println("--------------------------");
// 计算过程 ++ 在前和++在后的计算过程
int y = 1;
System.out.println(y++ + 1);// 1 + 1 : ++先引用在计算
System.out.println(y); // 表达式执行后的结果
int h = 1;
System.out.println(++h + 1);// 2 + 1 : ++先计算在引用
System.out.println(h); // 表达式执行后的结果
}
}
关系运算符
< <= >= == !=
计算结果是boolean类型
逻辑运算符
&&(并且) : 2边为true - true 否则全是 false
||(或者) : 2边为false 结果是 false 否则全为true
!(取反) :true | false
&(并且) : 2边为true - true 否则全是 false
| (或者) : 2边为false 结果是 false 否则全为true
位运算符
运算性能优于十进制
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理