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的特性:

  1. 高级语言 : 相对于汇编而言

  2. 严格检查数据类型 : 保存数据之前,先确定、声明要保存的数据是什么类型

  3. 面向对象: 相对的是面向过程

  4. 与平台无关: 一次编写,到 处运行 (java提供了不同操作系统的Jvm虚拟机 - 安卓模拟器)

  5. 安全 (所有的语言都说自己的安全的)

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是一个多用户操作系统, 只注册提供给当前用户使用的变量

image-20220211105423638

使用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变量

image-20220211110550375

配置PATH变量

image-20220211110720823

测试: 重新打开终端

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

位运算符

运算性能优于十进制

posted @   lecter*  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示