200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java基础-java概述 基本数据类型 基础语法

java基础-java概述 基本数据类型 基础语法

时间:2024-03-19 04:59:43

相关推荐

java基础-java概述 基本数据类型 基础语法

java基础

java概述java是什么java语言的特点Java语言的环境搭载java代码的运行原理java基础数据类型概述和应用基本数据类型基本数据对应的包装类引用数据类型数据类型转换自动类型提升(隐式类型转换)强制类型转换float f=3.4;是否正确Math.round(11.5) 等于多少?Math.round(-11.5)等于多少java运算符java中的运算符short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗a++和++a的区别用最有效率的方法计算 2乘以8&与&&区别java基础定义java注释符的概述和使用java中关键字的概述和使用final 概述和使用final finally finalize区别this关键字的用法super关键字的用法this与super的区别和注意事项static关键字概述和使用static存在的意义static的独特之处static应用场景static注意事项java中标识符的概述和使用java中常量的概述和使用java中变量(变化的数据)的概述和使用访问修饰符 public,private,protected 及其作用域java流程控制语句break ,continue ,return的区别及作用在 Java 中,如何跳出当前的多重嵌套循环D

java概述

java是什么

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继

承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编

程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程

java语言的特点

简单性.解释性.面向对象.高性能 多线程 跨平台 开源

跨平台(JVM:java虚拟机__翻译)

面向对象(java语言的核心思想)

面向过程(c语言的核心思想)

Java语言的环境搭载

JRE:(Java Runtime Enviroment)java运行环境,包括java虚拟机 以及java程序所需的核心类库,

JDK:(java Development Kit)

Java开发工具包 JRE+Java开发工具

JDK目录下内容介绍:

a.bin目录:用于存放一些可执行程序 如javac.exe java.exe

b.db目录:是一个小型的数据库

c.jre目录:java运行环境(jvm)

d.lib目录:java的类库或者库文件

java代码的运行原理

1.利用javac.exe编译器将计算机无法识别的.java文件编译成能够识别的.class文件(字节码文件)

2.利用java.exe运行工具运行.class文件得到的程序结果

java基础

数据类型概述和应用

基本数据类型

数值型

整数类型(byte,short,int,long)

浮点类型(float,double)(小数类型)

双精度和单精度的最大不同之处是数值能够表达的精度。单精度类型的精度被限制为7位,双精度类型可以实现15位的精度

字符型(char)

布尔型(boolean)

基本数据对应的包装类

将基本数据类型–(转换为)->引用数据类型(装箱)

将引用数据类型–(转换为)->基本数据类型(拆箱)

引用数据类型

除了基本数据类型外,都属于引用数据类型

类(class)

接口(interface)

数组([])

数据类型转换

自动类型提升(隐式类型转换)

取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的数据类型,在进行运算

public static void main(String[] args) {//自动类型提升(隐式类型转换)int x=3;byte b=4;//在java中想要参与运算,必须保持两边的数据类型要保证一致,将byte类型的b自动提升为int类型x=x+b;System.out.println(x);}}

强制类型转换

将数据类型强制转换成别的类型数据,从小的转化为大的数据类型

数据类型转换总结:

java编译器,在编译期间会将所有的字面量运算,优化为结果,例如:‘A’+1优化为66

int i ='杜';char c='a';i=c-'9';输出i=40 byte fd=(byte)'田';//byte fd =(byte)30000;是强转

int字面量在不超byte/short/char范围的时候,可以直接给byte/short/char赋值,如上(byte) (x+y)

public static void main(String[] args) {//强制类型转换int x =126;byte y =4;y=(byte) (x+y);//强制转换有风险 转换需谨慎System.out.println(y);}

③进行混合运算的时候,byte/short/char类型不会相互转换,都会自动提升int类型,

public static void main(String[] args) {/**① b1和b2都是变量,变量存储的值是有可能变化的,在编译期间 jvm无法判读里面具体值的大小* ②byte类型与byte类型进行混合运算时候,都会自动提升为int类型*/byte b1 = /*(byte)*/3;//自动强转的过程 隐藏式强转byte b2 = 4;byte b3 =(byte) (b1+b2);System.out.println(b3);}

④其他类型进行混运算的时候,是小的数据提升为大的数据类型

public static void main(String[] args) {/** 将int类型的x自动提升为long类型* long类型的5加上long类型的7 得到long类型的结果* 将long类型的结果12赋值给long类型的变量l*/int x=5;long l =7L;l = x+7L;System.out.println(l);//溢出现象l=Integer.MAX_VALUE+1;System.out.println(l);//不溢出 原因:已经转换为long类型的数字l=Integer.MAX_VALUE+1L;System.out.println(l);}

float f=3.4;是否正确

不正确。3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失**,因此需要强制类型转换float f =(float)3.4; 或者写成 float f =3.4F**

Math.round(11.5) 等于多少?Math.round(-11.5)等于多少

Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数

上加 0.5 然后进行下取整

java运算符

java中的运算符

a.什么是运算符?据说指对常量和变量进行操作的符号b.运算符的分类算术运算符 赋值运算符 比较(关系或者条件)运算符逻辑运算符 三目(元)运算

算术运算符:+ - * / % ++ –

算术运算符++合–的用处

①++,–运算符的作用

++自加 对原有数据进行+1

– 自减 对原有数据进行-1

②注意事项

a.单独使用:

放在操作数的前面和后面效果是一样的

b.参与运算使用:

放在操作数的前面,先自增或者自减,然后在参与运算

放在操作数的后面,先参与运算,然后再自增或者自减

赋值运算符

a.基本的赋值运算符

=

b.扩展的赋值运算符

+= -= *= /= %=

+=把左边和右边做加法,然后赋值给左边

比较运算符(关系.条件)运算符

> >= < <= == !=

注意事项:

无论你的操作是简单还是复杂,结果都是boolean类型

“==“不能写成”=”

逻辑运算符

&(与)并且 |(或)或者 !(非)否则

作用:连接两个比较表达式

短路逻辑运算:&& 短路与逻辑 ||短路或逻辑

非短路逻辑运算:&非短路与逻辑 |非短路或逻辑

短路与运算:&& 如果(表达式1)&&(表达式2)一旦表达式1返回的值是false

那么不计算表达式2的值,整个表达式返回false

短路或运算:|| 如果(表达式1)||(表达式2)一旦表达式1返回的值是true

那么不计算表达式2的值,整个表达式返回true

short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗

对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 类型,因此 s1+1 运算结果也是 int型,需要强制转换

类型才能赋值给 short 型。

而 short s1 = 1; s1 += 1;可以正确编译,因为 s1+= 1;相当于 s1 = (short(s1 + 1);其中有隐含的强

制类型转换

a++和++a的区别

a++和++a的区别是a++是使用的a后,再对a进行加1。++a是先把a加1,然后再使用a

用最有效率的方法计算 2乘以8

2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)

&与&&区别

&运算符有两种用法:(1)按位与;(2)逻辑与

&&运算符是短路与运算

逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。&&之所以称为短路运算,是因为如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。

注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

java基础定义

java注释符的概述和使用

a.文档注释符 一般写在类的下面 方法上面 解释当前类有哪些功能

/**

*

/

b.多行注释符 一般写在方法的上面

解释当前方法的作用

/

*

*/

c.单行注释符 一般写在当前行代码的上面或者后面 快捷键是 Ctrl+/

解释当前行代码的作用

//

作用:

在程序中,尤其是复杂的程序中,适当地加入注释可以增加程序的可读性,有利于程序的修改、调

试和交流。注释的内容在程序编译的时候会被忽视,不会产生目标代码,注释的部分不会对程序的

执行结果产生任何影响。

注意事项:多行和文档注释都不能嵌套使用

java中关键字的概述和使用

a.什么是关键字

就是指被java语言赋予特定含义的单词

b.关键字的特点

组成关键字的字母全部小写

c.常见的关键字

public static void class package

d.关键字的注意事项

goto和const作为保留字存在,目前并不使用

final 概述和使用

用于修饰类、属性和方法;

被final修饰的类不可以被继承

被final修饰的方法不可以被重写

被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的

final finally finalize区别

final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、

修饰变量表 示该变量是一个常量不能被重新赋值。

finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码方法

finally代码块 中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代

码。

finalize是一个方法,属于Object类的一个方法,而Object类是所有类的父类,该方法一般由垃圾

回收器来调 用,当我们调用System.gc() 方法的时候,由垃圾回收器调用finalize(),回收垃圾,一

个对象是否可回收的 最后判断

this关键字的用法

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针

class Person{private String name;private int age;public String getName() {return name;}//①普通的直接引用,this相当于是指向当前对象本身public void setName(name) {this.name = name;}public Person() {}//②形参与成员名字重名,用this来区分public Person(String name) {this.name = name;}//③引用本类的构造函数 (应该为构造函数中的第一条语句)public Person(String name, int age) {this(name);this.age = age;}}

super关键字的用法

super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类

super也有三种用法:

class Person {protected String name;public Person(String name) {this.name = name;}public String getName(){return this.name;}}public class Sun extends Person{private String name;// ①普通的直接引用,super.xxx来引用父类的成员String superName=super.name;//super.xxx()来引用父类的方法String superGetName=super.getName();public Sun(String name) {//②引用父类构造函数(应该为构造函数中的第一条语句)super(name);}//③子类中的成员变量或方法与父类中的成员变量或方法同名时,用super进行区分public Sun(String name, String name1) {super(name);this.name = name1;}public void getInfo(){System.out.println(this.name); //ChildSystem.out.println(super.name); //Father}}

this与super的区别和注意事项

区别:

1、指代上的区别

(1)super:是对当前对象中父对象的引用

(2)This:指当前对象的参考。

2、引用对象上的区别

(1)super.xxx:直接父类中引用当前对象的属性或方法(当基本成员和派生类具有相同成员时,用于访问直接父类中隐藏父类中的成员数据或函数定义)。

(2)This.xxx:表示当前对象的本类属性或方法(程序中容易出现歧义的地方,应该用来表示当前对象;如果函数的成员数据与该类中成员数据的名称相同,应用于表示成员变量名称)。

3、调用函数上的区别

(1)super():在基类中调用构造函数(是构造函数中的第一条语句)。

(2)This():在此类中调用另一个结构化的构造函数(是构造函数中的第一条语句)

注意事项:

①super()和this()都必须在构造函数的第一行进行调用,否则就是错误的

②this.xxx和super.xxx可以同时出现,this()和super()不能同时出现在一个构造函数里面

a.this.xxx和super.xxx意思是this调用本类属性或方法、super调用父类属性或方法时,可以同时出现

bthis()和super()是this调用本类构造器、super调用父类构造器时,构造函数作用就是构造函数的,这样同时出现,不知道返回哪个对象了,没有意义,编译也不会通过

③this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块

因为static是静态初始化,随着类的加载而加载,this()和super()都指的是对象,是要被调用的,他两个和对象有关,static和类有关

从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字

static关键字概述和使用

static存在的意义

类初始化加载,加载static修饰部分

静态共享:

1、被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享。

2、在该类被第一次加载的时候,就会去加载被static修饰的部分,而且只在类第一次使用时加载并进行初始化,注意这是第一次用就要初始化,后面根据需要是可以再次赋值的。

3、static变量值在类加载的时候分配空间,以后创建类对象的时候不会重新分配。赋值的话,是可以任意赋值的!

4、被static修饰的变量或者方法是优先于对象存在的,也就是说当一个类加载完毕之后,即便没有创建对象,也可以去访问

static的独特之处

1、被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任

何一个实例对象,而是被类的实例对象所共享。

怎么理解 “被类的实例对象所共享” 这句话呢?就是说,一个类的静态成员,它是属于大伙的【大

伙指的是这个类的多个对象实例,我们都知道一个类可以创建多个实例!】,所有的类对象共享

的,不像成员变量是自个的【自个指的是这个类的单个实例对象】

2、在该类被第一次加载的时候,就会去加载被static修饰的部分,而且只在类第一次使用时加载

并进行初始化,注意这是第一次用就要初始化,后面根据需要是可以再次赋值的。

3、static变量值在类加载的时候分配空间,以后创建类对象的时候不会重新分配。赋值的话,是

可以任意赋值的!

4、被static修饰的变量或者方法是优先于对象存在的,也就是说当一个类加载完毕之后,即便没

有创建对象,也可以去访问。

static应用场景

因为static是被类的实例对象所共享,因此如果某个成员变量是被所有对象所共享的,那么这个成

员变量就应该定义为静态变量。

因此比较常见的static应用场景有:

1、修饰成员变量

2、修饰成员方法

3、静态代码块

4、修饰类【只能修饰内部类也就是静态内部类】

5、静态导包

static注意事项

1、静态只能访问静态。

2、非静态既可以访问非静态的,也可以访问静态的。

java中标识符的概述和使用

a.什么是标识符

就是给类,接口,变量,方法,包等起名字时启用的字符序列

b.标识符的组成规则

英文的大小写字母

数学字符

$和_

c.标识符的注意事项

不能以数字开头

不能使用关键字

标识符中常见的命名规则,见名知意

a.包

最好是域名倒过来写,要求所有的字母小写

–>com.baidu.包的作用

b.类或者接口

如果是一个单纯 首字母大写,例如:Demo01

如果是两个或者两个以上的单词,每个单词的首字母大写,列如:HelloWorld(驼峰命名法)

c.方法或者变量

如果一个单词 全部字母小写,例如:hello

如果是两个或者两个以上的单词,从第二个单词开始首字母大写,例如:helloWorld

d.常量PI

如果是一个单词,所有字母大写,例如:HELLO

如果输两个或者两个以上的单词,所有字母大写,每个单词之间用下划线链接,例如:HELLO_WORLD

java中常量的概述和使用

a.什么是常量

在程序执行的过程中,其值不可以发生改变

b.java中常量的分类

字面值常量

自定义常量(面向对象)

c.字面值常量的分类

整数常量 所有的整数

小数常量 所有的小数

布尔常量 只有两个值 true和false

字符常量 用单引号括起来的内容,里面只能放单个的数字,单个的字母或者单个符号’a’ '!'等

字符串常量 用双引号括起来的内容

空常量 null() 表示nothing

java中变量(变化的数据)的概述和使用

a.什么是变量

变量指的是内存中的一片存储区域

该区域有自己的名称(变量名)和自己的数据类型

该区域的数据可以在同一类型范围内不断的变化

b.问什么要定义变量

用来不断的存放同一类型的数据,并可以重复使用

c.定义变量的格式(2种)

格式1:数据类型 变量名 = 变量值;int age = 23;//声明一个int类型的变量age

//将整数23赋值给变量age

格式2:数据类型 变量名; int age;

变量名 = 变量值; age= 23;

d.使用变量的注意点

变量有自己的作用范围(一对{}之间有效)

变量必须要有初始化值(第一次给变量赋值)

同一作用范围内,变量不可以重复声明

访问修饰符 public,private,protected 及其作用域

定义:Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种

不同的访问权限。

分类

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。

使用对象:类、接口、变量、方法。

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类

(外部类)。

public : 对所有类可见。使用对象:类、接口、变量、方法

访问修饰符图

java流程控制语句

break ,continue ,return的区别及作用

break跳出总上一层循环,不再执行循环(结束当前的循环体)

continue跳出本次循环,继续执行下次循环(结束正在执行的循环 进入下一个循环条件)

return程序返回,不再执行下面的代码(结束当前的方法 直接返回)

7.抽象类和接口的对比

8.a++和++a的区别

在 Java 中,如何跳出当前的多重嵌套循环D

public class breakOk {public static void main(String[] args) {/** 在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环*/ok:for (int i = 0; i < 10; i++) {for (int j = 0; j < 10; j++) {System.out.println("i=" + i + ",j=" + j);if (j == 5) {break ok;}}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。