锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

6月23日Java学习

时间:2024-01-04 07:07:02 7y静态中间继电器

1. 执行程序过程有几种

1). 顺序结构

顺序结构是任何编程语言中最常见的程序结构。顺序结构是从上到下执行程序,中间没有判断和跳转。
如果main多行代码之间没有过程控制,程序总是从上到下执行,先执行前代码,后代码执行。这意味着,如果没有过程控制,Java方法中的句子是顺序执行流,每个句子从上到下依次执行。

2). 分支结构 (单路分支, 多路分支)

Java提供了两种常见的分支控制结构:if语句和switch语句,其中if语句以布尔表达式或布尔值为分支条件进行分支控制;Switch句子用于匹配多个整形值,从而实现分支控制。

3). 循环结构

循环语句可以在满足循环条件的情况下反复执行一段代码,称为循环体。当循环反复执行时,需要在适当的时候将循环条件改为虚假,以结束循环,否则循环将继续执行,形成死循环。循环语句可能包括以下四个部分。

4). 调用和返回函数

函数名()即调用函数,在遇到函数之前执行函数体代码return或执行函数体内的所有代码。

2. 选择分支的语法

(1) 单if

if(条件表达式){    //statement list } 

上述格式的条件表达式可以是任何逻辑表达式,但最终返回的结果必须是布尔值。

如果条件是真的,则执行句块;如果条件是假的,句块将被绕过而不执行。

(2) 互斥 if...else

if (条件表达式) {     //statement list 1 }  else {     //statement list 2 } 

单行if句子只能在满足条件时使用,不能执行任何其他操作(停止)else语句的if如果可以定义两个操作。if条件表达式建立后,执行statement list 1,否则执行statement list 2

(3) 多分支互斥 if...else if...else if...else

if (条件表达式1) {     //statement list 1 }  else if(条件表达式2){     //statement list 2 } ... else if(条件表达式n-1){     //statement list n-1 } else{     //statement list n } 

执行多条件语句时,依次判断表达式的值,当某个分支的条件表达式的值为true执行分支对应的句块,然后跳出整个句块if后续程序继续执行语句;如果所有表达式都是false,执行句块statement list n,然后继续执行后续程序。

(4) 嵌套的if

if(条件表达式1) {     if(条件表达式2) {         //statement list 1     }      else {         //statement list 2     } } else{     if(条件表达式3) {         //statement list 3     }      else if(条件表达式4) {         //statement list 4     }      else {         //statement list 5     } } 

(5) switch...case

switch(表达式) {     case 值1:         //statement list 1         break;     case 值2:         //statement list 2         break;     …     case 值n-1:         //statement list n-1         break;     default:         //statement list n         break; } 

switch语句是Java它提供了一种基于表达式离散值的简单方法来执行程序的不同部分。

switch后小括号中的表达式必须是整形或字符型。

3. 整理循环语法

(1) while

      while(条件判断) {               //循环体        } 

只要条件是真的,它就会继续循环。如果条件判断为假,则跳出循环。

(2) do...while

      do{               //循环体        }while(条件判断); 

do-while只有满足条件,才能进入循环,但与while不同的是,do-while先循环,再判断条件,所以即使不符合条件,也至少要执行一次。

(3) for

      for(表达式1; 表达式2; 表达式3) {            //循环体        } 

for循环运行顺序:
(1)执行表达式1(只执行一次),通常定义循环变量句。
(2)执行表达式2,通常是判断循环条件,为真实执行,为假结束循环。
(3)执行循环体语句。
(4)执行表达式3,通常是循环变量控制语句,通常是循环变量的自增或自减( ,–)。
(5)回到第(2)步,重复此过程,直到假期结束

四、循环四要素

循环初始化条件 :循环的起始位置

循环条件 :标记循环继续的条件

循环:循环执行的内容

迭代条件:步长、统计变化,确定是否继续

5.什么是函数?

函数是一系列指令的集合, 函数包装指令, 可以达到代码复用的目的

函数是组织代码的最小单元

    类是程序的最小单元

6. 什么是静态函数, 函数的组成部分, 函数调用时需要注意什么

静态成员函数是类的成员函数,该函数不属于该类申请的任何一个对象,而是所有该类成员共同共有的一个函数。

函数的组成部分:

1.权限修改

2.静态修改

3.返回值类

4.函数名

5.参数列表

6.函数体

7.返回值

函数调用时要注意什么:

1.实际参数的类型与形式参数的类型匹配。

2.实际参数与形式参数的个数要相同。

3.实际参数与形式参数的类型个数要一一对应。

7.   主函数和普通函数的区别是什么

1.区别在于调用,java函数都是为调用而生,main函数也不例外,而它与普通函数的区别在于调用者,main是一个jvm所识别的固定名字,所以类中的main函数是由jvm所调用的,程序的固定入口。

而普通函数的调用可以通过类调用或对象调用,调用者为其他类或对象。

2.main函数与普通函数另一个区别为写法:

普通函数的写法根据业务与java规范而定,但是main函数的写法是为了被jvm调用,所以写法固定
 

8.主函数可以用private修饰吗? 为什么?

因为main方法是一个静态方法

方法内的变量是局部变量

局部变量只在定义它的内部有效,并且不能使用 private ,protected,public 修饰符进行修饰,用了也没有用,因为局部变量只在定义它的内部有效,当局部变量所在的方法调用结束后,java 虚拟机将自动释放局部变量所占用的资源。
 

9. 权限修饰符

        public : 公共的, 可以在任何外部类中调用

        private: 私有的, 只能在本类的内部调用

        (default)默认不写权限修饰符: 同包的, 只能在同一个包里面调用

10. 静态修饰符

        static 函数必须添加static修饰符, 如果没有static修饰, 就不是函数, 而是方法

        方法的调用方式跟函数是不一样的

11. 返回值类型

        写 void 代表函数没有返回值

        写一种具体的类型 代表函数有返回值, 并且约定了返回值的类型

            例如: 返回值类型的double, 那么调用方调用后, 只能用double类型的变量来接受函数的返回值

                  并且函数内必须用return返回值的double类型的操作数出去

12. 函数名

从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址。

13. 参数列表

可以有参数,也可以没有参数,但是0一定要有可以有1个参数,也可以有多个参数
定义参数的时候需要指定参数的类型和参数名,不需要写参数值,参数值是由调用方在调用函数的时候指定的,调用方在调用函数的时候,必须要给参数列表中所有参数的值,参数个数和数据类型必须一一匹配的
形式参数:函数定义时的参数,例如int r
实际参数:函数调用时传递的值,例如 15

14. 函数体

包含访问权限修饰符和静态修饰符

15. 返回值

包含返回值类型和函数名

16. 参数

形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。
实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
 

17. 什么是类加载

我们在写一段代码之后,将其运行,显示结果,这个过程当中就涉及到了类加载。首先这段代码(源文件)被javac编译(java编译器)成字节码文件(.class文件),然后将此字节码文件加载到内存,并且对里面的数据进行校验、解析和初始化,最后形成可以被java虚拟机(JVM)直接使用的java类型,这就是虚拟机的类加载机制。
 

18. 什么是方法区

方法区存放类的信息、常量和静态变量,即类被编译后的class文件。更加具体地说,存放着:类的版本,字段,方法,接口和常量池。常量池里存储着字面量和符号引用。

19. 静态变量与局部变量的区别

     定义的位置不同

        静态变量: 定义在函数外面, 类的里面

        局部变量: 定义在函数里面

     作用域不同

        静态变量: 当前类中所有的函数都可以使用

        局部变量: 只能在当前函数内使用

     局部变量一定不可以被外部访问, 因为不可用加访问权限修饰符

     静态变量可以被外部访问, 因此可以添加访问权限修饰符

20. 什么是栈, 什么是栈帧

栈是Java中最常用的容器之一,只有一个口(入口和出口共用一个),里面的元素进出规则是先进后出。

栈帧是栈的组成单元,栈里面的元素都是以栈帧的形式存储。栈帧由局部变量表,操作数栈,动态连接,方法返回地址,一些附加信息组成。

21. break、continue、return的作用和区别

    break是跳出循环

    continue是结束本轮循环, 进入下一轮循环

    return是函数返回

22. 画出JVM内存结构图

23. 什么是debug

DEBUG是计算机排除故障的意思。马克2号(Harvard Mark II)编制程序的格蕾丝·霍珀(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍珀诙谐地把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,而这奇怪的“称呼”,竟成为后来计算机领域的专业行话。

24. 什么是递归

它是指一段程序直接或者间接调用自身的一种方法,通过这种形式执行需要进行一些固定步骤的许多操作,它可以把一个复杂并且庞大的问题简单化,通过专注于解决它分化出来的小问题从而解决大问题,从而大大减少我们的代码量,是提高我们编码效率的很好方法

25. 整理以下关键字

    class      定义类

    public     公共的

    private    私有的

修饰符 类内部 同一个包 不同包的子类 同一个工程
private Yes
(缺省) Yes Yes
protected Yes Yes Yes
public Yes Yes Yes Yes

    if         开始一个选择分支, if后面跟小括号,小括号里面的操作数是判断条件, 可以是直接量,变量,表达式, 但必须是boolean类型

    else       else后面不跟条件, 但是else if后面必须跟条件

    switch     开始一个选择分支, switch后面跟小括号

               小括号里面的操作数只能是byte, short, int, char类型

               Java5后支持枚举类型

               Java7后支持String类型, 但通过观察字节码可以发现, 本质上还是int类型

               注意, switch不支持long类型, 也不支持浮点型和boolean类型

    case       是switch中的一个分支, 后面跟直接量, 直接量与switch()中的操作数的数据类型必须相同

    default    在switch中所有case都不满足时执行default分支, 它相当于是多重if分支中的最后的else, 是所有情况都不满足时, 默认执行的分支

    break      1. 用于跳出switch...case

               2. 用户跳出循环

               如果有循环嵌套循环, 那么break跳出的是最近的那个循环

    while      开始一个循环, while后面跟小括号,小括号里面的操作数是判断条件, 可以是直接量,变量,表达式, 但必须是boolean类型

    do         do必须和while组合使用, do在前面, while在后面, 先执行一次do, 再通过判断while条件是否成立, 来决定是否循环

    for        开始一个循环, for后面跟小括号, 小括号里面有3组表达式, 分别是循环变量初始化, 循环条件, 循环变量的迭代

    continue   本轮循环结束, 进入下一轮循环

    void       函数没有返回值

    return     函数返回,

               后面可以什么都不跟, 也可以跟一个操作数, 具体要看函数是否定义了返回值类型

    static     静态的

Math数学函数
函数名 参数 返回值 作用
abs(x) 1 double 返回绝对值
copySign(x,y) 2 double 返回第一个参数的量值,第二参数的符号。
signum(x) 1 double 如果x大于0则返回1.0,小于0则返回-1.0,如果等于0则返回0.0
 ceil(x) 1 double 返回最近的且大于x的整数。
floor(x) 1 double 返回最近的且小于x的整数。
sqrt(x) 1 double 返回x的二次方根。
hypot(x,y) 2 double 返回x²+y²的二次方根。
 log10(x) 1 double 返回以10为底的对数。

abs(x)函数是返回一个数的绝对值

copySign(x,y)  返回第一个参数的量值,第二参数的符号。

signum(x)  如果x大于0则返回1.0,小于0则返回-1.0,如果等于0则返回0.0

 

 ceil(x)  返回最近的且大于x的整数。

 floor(x)  返回最近的且小于x的整数。

sqrt(x)  返回x的二次方根。

hypot(x,y)  返回x²+y²的二次方根。

 

 log10(x)  返回以10为底的对数。

 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章