JAVA学习笔记第一天——JAVA简介与基础数据类型、运算符

本文是JAVA学习笔记的第一天,主要介绍了JAVA的简介,包括其发展历史和跨平台特性。接着详细讲解了JAVA环境的安装,如JDK和JRE的含义。在基础语法部分,阐述了JAVA的8种基本数据类型及其内存占用,以及运算符的使用,包括算术、自增减、赋值、关系、逻辑、位和三目运算符。
摘要由CSDN通过智能技术生成

一、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; // 大范围赋值给小范围,不允许,除非强制类型转换
	}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值