0
点赞
收藏
分享

微信扫一扫

Java尚硅谷核心知识

这里写目录标题

Java基础部分

Java是一种一次编译,到处运行的语言
Java是一种面向对象的编程语言
Java有一个很大的优势在于有自动回收垃圾的机制

为什么要为JDK设置环境变量

在cmd中可以在任何地方调用JDK指令

JDK、JRE、JVM

JDK是Java开发工具包
JRE是Java运行环境
JVM是Java虚拟机
JDK=JRE+java开发工具(javac.exe(编译)、java.exe(运行))
JRE=JVM+核心类库

Java的关键字和保留字

Java中有很多关键字,保留字是指以后的版本可能会用到(goto和const)
在Java中变量的名字不能关键字或者保留字

Java的数据类型

Java是一种强类型语言

强类型和弱类型

强类型语言:是指强制要求为变量设置类型,在编译前就把数据类型进行确定
弱类型语言:是指是在编译后确定数据类型,没有明显的类型,随着环境的不同,自动变换类型。var a=10;编译前无法确定它的类型。

一共有两种。一种是基本类型,另一种是引用类型

基本类型包括:

byte、short、int、long、float、double、char、boolean
在这里插入图片描述

注意:

  • Java中char的范围和c语言中char的范围有区别Java中char占用两个字节,范围是0–65535。
  • 1byte=8bit;
  • long a=12; float b=12;这两种情况不会报错,是因为自动提升的原因

自动提升以及强制转换

自动提升

基本类型中容量小的和容量大的一起运算时,会发生自动提升现象
注意:float的范围比long的还要大。是因为它们底层的存储结构不同。float/double使用科学计数法来存储,而long使用普通的二进制来存储,也就是说一个存的是多少次方,而一个是只有多少位。

强制准换

是指在大容量向小容量转换时发生的,在强制转换时会有精度损失

注意:类型转换都是基本类型之间的,String不能和基本类型之间进行转换,但是包装类可以和String进行转换

有byte、short、char的混合运算时结果都为int类型

引用数据类型包括

String、Array、Interface

Java文件的执行过程

在这里插入图片描述

Java的核心

  • JVM
  • 垃圾回收机制:自动监测对象是否超过作用域(可达性分析和引用计数),进行回收

Java为什么能够跨平台

Java语言的运行依赖于JVM,不同的操作系统有不同的JVM

JVM的组成

类加载子系统、运行数据区(内存)、执行引擎、本地接口库,本地方法库

运行时数据区包括:堆、JVM栈、程序计数器、方法区、本地方法栈

JVM栈:用来存储局部变量
堆:用来存储新创建的对象以及数组
方法区:有个静态域,用来存储被static修饰的静态方法属性或方法。

在这里插入图片描述

运算符

  • 算术运算:+ - * /
  • 赋值运算:
short s=2;
s=s+2;//编译不通过,类型不一致
s+=2;//编译通过,运算时不会改变类型
  • 比较运算
    instanceof
 System.out.println("hello" instanceof String);//true
  • 逻辑运算
&:逻辑与
&&:短路与
|:逻辑或
||:短路或
^:异或。相同为0不同为1
!:非
  • 位运算
<<左移,相当于*2
>>右移,相当于/2
&与运算,都11
|或运算,有11
^异或运算  110^011=101==>5
~取反运算  ~6=7  (补码)0110<==>(补码)1001==>0111(源码)==>7
  • 三目运算符
    举个栗子:
//如果a<60,将a的值置为0。
int a=a>60?a:0;
  • 运算符优先级
    在这里插入图片描述

流程控制

  • 顺序结构
  • 分支结构 :if……else…… switch( ) case:
  • 循环结构:for、where

数组

数组是一种能存储相同数据类型,但是需要占用连续空间数据结构。需要注意的是:长度一旦确定,就不能再进行修改。

注意:数组的索引是从0开始的而数据库库的索引是1开始的,在连接数据库时需要注意。

在这里插入图片描述

在这里插入图片描述

二维数组

就是两个一维数组组成的数组栈中的引用指向堆,堆中存的也是一个引用
在这里插入图片描述

算法中数组的应用

  1. 数组元素的赋值(杨辉三角、回形数等)
  2. 求数值型数组中元素的最大值、最小值、平均数、总和等
  3. 数组的复制、反转、查找(线性查找、二分法查找)
  4. 数组元素的排序算法(稳定性)A和B相等排序后,A和B的次序不变(应用:商品首先根据销量排序,再根据价格排序,就需要排序的稳定性)

oop–万物皆对象

主流编程语言要么是面向过程(强调考虑怎么做),要么是面向对象(强调谁来做)。程序员从面向过程的执行者转化成了面向对象的指挥者

举个栗子:把大象装进并冰箱
在这里插入图片描述

类:是指对一类事物的概括。
对象:是指存在的一个真实个体

对象一般通过new来创建

A a=new A();
A b=a;//a和b指向同一位置,修改b也在修改a

oop三大特性

  • 封装:将属性或方法封装起来,给外界流出访问他的接口,不展现具体细节
  • 继承:一个子类继承一个父类,能够直接调用父类的非私有属性和方法,通过set、get也能访问私有属性。
  • 多态:分为运行时多态(overload)和编译时多态(override),多态的三个必要条件 :1.要有继承(实现implements) 2.要有重写(overWrite&overRide) 3.父类引用指向子类对象
举报

相关推荐

0 条评论