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.包
最好是域名倒过来写,要求所有的字母小写
www.baidu.com–>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;}}}
}
}

java基础-java概述,基本数据类型,基础语法相关推荐

  1. java和C语言在数据类型和语法上的比较

    一.数据类型 1.Java:Java的数据类型可分为两大类: ①基本数据类型:byte.short.int.long.double.float.boolean.char ②引用数据类型:类.接口.数组 ...

  2. MySQL基础——(MySQL概述及SQL通用语法)

    MySQL基础篇(一) MySQL基础 目录 MySQL基础 1 MySQL概述 1.1 数据库相关概念 1.2 数据模型 1)关系型数据库(RDBMS) 2)数据模型 2 SQL 2.1 SQL通用 ...

  3. JAVA计算机存储单元概述及数据类型

    计算机存储单元 变量是内存中的小容器,用来存储数据.那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫"位(bit)",我们又称之为"比 ...

  4. 【Python】基础之变量、数据类型基础操作

    文章目录 一.输入函数Print 二.注释 三.输出函数input 四.变量 4.1 变量的赋值 4.2 变量命名规则 4.3 内部保留关键字 4.4 同时为多个变量赋值 五.标准数据类型 5.1 整 ...

  5. Java开发环境的搭建与基础语法(温习知识点)

    复习昨日内容 * Java语言概述* Java语言概述&发展史[了解]* Java的跨平台[了解]* JDK JRE JVM 有什么作用[理解] * Java开发环境的搭建 * JDK的下载与 ...

  6. 1,Java语言基础-Java语言概述和必要计算机知识

    Java语言基础 Java语言概述 1,Java语言发展史 Java语言本质 Java是面向对象的高级语言,它是由c和c++发展而来. Java发展语言历史概述 Java 是由 James Gosli ...

  7. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...

    今天给大家带来的是初级Java基础部分的知识:包括初始Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  8. Java基础-Java概述(第一、二章)

    Java基础 文章目录 Java基础 1. Java概述(第一.二章) 1.1 Java基本介绍 1.2 Java的运行机制及运行过程 1.3 Java环境配置 1.4 Java快速入门 1.5 Ja ...

  9. Java基础----Java编程语言概述

    Java基础----Java编程语言概述 文章目录 Java基础----Java编程语言概述 Java编程语言概述 1-1 软件开发介绍 1.1软件开发介绍 1.2 常用命令 1-2 计算机编程语言介 ...

  10. java学习总结——通过题来学习Java(Java基础语法)

    java学习总结--通过题来学习Java(Java基础语法篇之一) 一.概述 大二痛苦的前十个周后,我终于得到了喘息之机,有时间来回顾一下之前所学到的东西,总结一下之前的所得,尝试获取一下新的东西,同 ...

最新文章

  1. android 视频图片,Android - 视频提取图片方法
  2. Linux/ubuntu server 18.04 安装远程桌面--vnc server
  3. 2022年十大卫星技术创新及发展趋势
  4. parasoft Jtest 使用教程:创建并使用参数化测试用例(上)
  5. Scala 函数声明及调用案例详解
  6. oracle11优点,争先体味Oracle 11g的新特点
  7. linux获取windows的主机名,获取网络许可主机名和主机 ID 的步骤
  8. 百度鹰眼Web服务API开发使用教程
  9. 数字图像处理--图像颜色
  10. 初探webpack之编写plugin
  11. 【ARM】【NEON加速介绍】
  12. 广播接收者的特点和版本差异
  13. 使用Aspose.Cells 根据模板生成excel里面的 line chart
  14. 《批判性思维工具》—— 阅读内化(5)
  15. 关于logo1_.exe(威金病毒)蠕虫病毒的清楚,
  16. Matlab中table2array函数使用
  17. 【通俗易懂的通信】马尔可夫过Ⅲ:马尔可夫链的极限性态与平稳分布
  18. linux mysql max_allowed_packet_Linux服务器上如何设置MySQL的max_allowed_packe
  19. 分析与提取QQ木马盗号技术
  20. Flutter运行报错Automatically assigning platform `iOS` with version `9.0` on target `Runner`...

热门文章

  1. Storage System
  2. 大神论坛 利用活跃变量分析来去掉vmp的大部分垃圾指令
  3. 确定不看看我的扫雷吗(C语言)
  4. 2019年全面加强知识产权保护工作最新进展及下一步工作
  5. 叩丁狼学院Java入门 项目代码
  6. 十款ASP CMS建站系统源码
  7. Ps抠图(小白教程)
  8. 【攻略】淘宝前端智勇大闯关-第一季
  9. Three.js(十二)——骨骼动画、变形动画
  10. 网络邻居中打不开计算机,怎么解决Win7 64位旗舰版系统中网上邻居打不开