自学Java第一阶段的第一章

Java编程语言概述

文章说明

本篇文章介绍自学【Java编程 阶段】,仅是对自己学习的记录,并没有深入分析每个模块。感谢支持!

  1. 计算机语言介绍:
    计算机语言可以分为:三大块!
    第一块:机器语言 比如:0 1
    第二块:汇编语言 比如:mov ax,bx
    第三块:高级语言 比如:C、C++、C#、Java、Python等…

  2. Java语言的前世今生
    1991年 Java 是由SUM 公司的 JamesGosling 中文翻译为::詹姆斯•高斯林,Java语言之父!
    Java是一款很优秀的语言,他的特长之处是:一次编译到处运行。又是个面向对象的语言,又有高度的可移植性,简洁有效。他的核心优势就是:跨平台。
    Java 是一款分布式、健壮性、解释性语言。
    Java的三大特性是:封装、继承、多态

  3. Java技术体性平台
    JavaSE :标准版,也是最核心的。
    JavaEE:企业版
    JavaME: 微型版
    JavaCard:小程序版

  4. Java的JVM(Java虚拟机运行原理)
    首先在以 .java文件中,写一个段程序如:

public class Hello{
	public static void main(String [] args){
		System.out.println("Hello CSDN");
	}
}

然后在 cmd 里编译这段程序,命令为:javac Hello.java
编译成功,就可以开始执行代码,命令为:java Hello
显示:Hello CSDN

Java底层描述:
写好的程序,交给了编译器,编译器把以.java的文件,编辑成了.class的字节码文件,并发送给Java虚拟机 JVM ,在虚拟机里,.class的字节码文件就让类加载器进行处理,类加载器就把.clss的数据读入到内存里,并创建一个字节数组,然后产生了Class对象,但是加载完成之后,Class对象并不完整,所以就不能使用,然后接着进入 连接阶段… 如图:
在这里插入图片描述

  1. Java核心机制
    Java核心机制一共有两种:
    第一种:Java虚拟机(JVM)
    实现了Java的跨平台的优势,每个操作系统都有对应的解释器。源程序通过编译器,编译成字节码,然后通过JVM执行,JVM 可以理解成为一个以字节码为机器的指令 CPU。JVM 机制屏蔽了底层运行平台差别,实现了“一次编译,到处运行”!

    第二种:垃圾收集 机制(Garbage Collection)
    垃圾收集在 Java 程序运行过程中自动进行,程序员无法精确的控制和干预。

  2. Java程序的执行原理
    1.加载器到了内存区,2.找到了 main 方法开始执行,3.执行过程中的内存管理,
    存在硬盘中的程序代码是通过编译 成的字节码,之后运行 java 。运行开始后代码被下载到内存区, 从main 方法开始执行。内存代码存放在 code segment ,静态变量和字符串常量存放在 data segment 局部变量存放在 stack,new 出来的东西存放在heap中。

注:还在理解中,并没有完成理解…

  1. Java变量的声明与使用
    什么是变量?
    答:变量的值是千变万化的,是不固定的。

    变量分为:
    局部变量:方法里或语句块内部定义的变量。
    全局变量:方法外部、类内部定义的变量。
    静态变量:是以static 关键字定义的变量。
    注:类在静态变量就在,静态变量是首先声明变量。

    变量命名规则:除了第一个单词首字母小写,其他的单词首字母大写,把怎么做称之为:驼峰命名法!

    变量三大要素:
    1.数据类型 :是用来存储,字符串、整型、浮点型、布尔型、对象、等…
    2.变量名: 通过变量名可以进行访问这块内存以及里面的内容。
    3.值:存放具体的值是可以变换的。

    变量使用原则:先声明后使用!

    注:常量是以 final 关键字声明的。
    命名规则:所有单词大写,每个单词分割之间使用下划线 分割
    如:final String NAME=“王五”;

  2. 基本数据类型

八大基本数据类型:
byte 字节型 占 1个字节!
short 短整型 占 2个字节!
int 整形 占4个字节!
long 长整型 占8个字节!
float 单浮点型 占4个字节!
double 双浮点型 占8个字节!
boolean 只有两值(true false)
char 单字符型 占2个字节。
注:可以使用Unicode编码!
例如常见的:
数字0 :Unicode编码的值为48。
数字1 :Unicode编码的值为49。
字母A :Unicode编码的值为65。
字母B :Unicode编码的值为66。
字母a :Unicode编码的值为97。
字母b :Unicode编码的值为98。

基本数据类型转换

自动类型转换

byte、short、char 运算时,结果为 int类型。
char 运算时 牵扯到 ASCII 码!
当两个不一样的数据类型 运算,结果 往往都是 范围最大的数据类型。

强制类型转换

首先我要知道为什么要用强制类型转换呢?

我的个人理解:因为当我们定义的是范围大的数据类型,然后和小的范围数据类型 进行运算,会影响到 计算机运行的效率,又浪费内存空间,所以我们要转换下存放的范围,但是 不好的一点是 会失去精度,所以根据实际情况去转换。

例如:

double d=36.9;
int i=(int)d;
输出: 36

算术运算符

加(+) 减(-) 乘(*) 除(/) 取余(%) a++ ++a a-- --a 正号 (+) 负号(-)

int a=-10;
int b=12;
输出:b%a == 2
     

注:余数的负号 是由被模数 所控制!

a++

先运算 再自增 1

++a

先自增1 再运算

a–

先运算 再自减 1

–a

先自减 ,再运算

小小的随堂练习:

自增练习,自减练习

int a=13int b=15;

int c=a++;
输出:c  是: 13
输出:a  是: 14

c=++a;
输出:c  是:15;
输出:a  是:15;

c=b--;
输出:c 是:15;
输出:b 是:14;

c=--b;
输出:c 是:13;
输出:b 是:13

小小的随堂小练习2

任意一个三位数  ,取每一位数!

百位 、十位、个位
int a=456;
int baiwei=a/100;
int shiwei=a/10%10;
int shiwei2=a%100/10;
int gewei=a%10;
int gewei2=a%100-(shiwe*10);
System.out.println(baiwei+","+shiwei+"/"+shiwei2+","+gewei+"/"+gewei2);

输出:4,5/5,6/6

赋值运算符

= += -= *= /= %=

赋值运算符,支持连接赋值!例如:int a=b, a=b=10; (从右 往 左 赋值)

+= -= *= /= %=

运算时不会 改变本身 数据类型。

注: sum +=10 ; 可以写成 sum=sum+10;

但是会改变本身的数据类型! 比如:short byte char ,值是 浮点型的时候。

比较运算符

注:= 和 == 分清楚

一个赋值 一个 比较的

Instanceof 检查是否是类的对象。

比较运算符结果永远都是 布尔数据类型 true false

逻辑运算符

单与 & 双与 && 单或 | 双或 || 非 ! ^ 异或

个人理解:
与 & 或者 && :返回的 false , 有一个 false 就是false ,除非都是 true 。

或 | 或者 || : 返回的 true ,有一个true 就是 true ,除非 都是 false

非! : 就是取和他相反的。

异或 ^ : 听名就知道,要两个不一样的值。如果两个都是 true 就是 false ,
如果 两个都 是false 也是 false。
如果有一个 true ,另一个 是false 则就是true 。

区别:
& 和 &&
当 用了 & 的时候:
式子左边是false 的时候,还进行运算。
当用了 && 的时候:
式子左边是false 的时候,就不进行运算咯。

区别:
| 和 ||
当用了 | 的时候:
式子左边是true 的时候,还进行运算。
当用了 || 的时候:
式子左边是true的时候,就不进行运算咯。

因为: && 返回的是 false ,只要一遇到 false 其他就不执行咯。

因为:|| 返回的是true ,只要一遇到true 其他就不执行咯。

位运算符

友情提示:位运算是直接对整数的二进制进行的运算,操作的整型的值。

<< 左移 、 >> 右移 、 >>> 无符号 右移

个人理解:
<< 左移 :
移到 1 位 就是 2的1次方! 计算的时候用 乘法,包括负数

例子:
int i=20;
输出:i<<2 得:20* 2的2次方 等于:40
>>右移:
移动1位就是 2 的 1次方! 计算的时候用 除法 包括 负数

例子:
int i=20;
输出:i>>2 得: 20/2的2次方 等于:5

面试题:
题目:如何高效的运算 出 8 * 2

2<< 3 或者 8<<1

三元运算符

格式:(条件表达式) ? 表达式1 : 表达式 2

如果 条件表达式 为 true 就执行 表达式 1

如果条件表达式为 false 就执行 表达式 2

注:表达式数据类型一致 ,可以嵌套使用!

注:能用三元运算符 就能用 if else 执行

能用 if else 未必能用 三元 运算符

如果 又能 用 if else 又能用 三元 运算符 ,那就用三元运算符 。

因为三运算符 效率高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值