JavaSE基础——Java基础语法:Hello World,中软国际java面试题

public class HelloWorld {

public static void main(String[] args) {

System.out.println(“Hello World”); // 输出 Hello World

}

}

static是比较难以理解的一个关键字,在《Java编程思想》有一句话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途”。简单来说,被static修饰的不需要依赖于任何对象就可以进行访问。

来源于:RUNOOB.COM

但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。

二、基本语法

======

为增强程序可读性,Java有以下的约定

  1. 类、接口:通常使用名词,且单词首字母要大写(例:HelloWorld )

  2. 方法:通常使用动词,首字母小写,其后用大写分割每个单词(驼峰法:eatFoodFunction)

  3. 常量:全部大写,单词之间用下划线分割(例:PI )

  4. 变量:通常用名词,其后用大写分割每个单词,避免$符号

同时要注意以下几点:

  1. 大小写敏感,Hello与hello在java中是不一样的

  2. 不能使用关键字

  3. 见名知意!尽量一看到变量名就知道这个变量代表什么意思

  4. 源文件的文件名与公共类名一致,并保存为.java

  5. java中基本数据类型:char 2字节(在字符串中一个英文字符或者数字、英文符号等占一个字节)

  6. 静态导入:当使用同一包下静态方法较多时,可以采用静态导入的方法

  7. 构造函数不能使用递归

  8. 递归函数可以有返回值也可以没有

  9. 任何类都可以声明为抽象

  10. 注意:一个类只能具有“ final”,“ abstract”和“ public”作为修饰符

  11. 数字是指0~9,字母指大小写英文字母、下划线(_)和美元符号($),也可以是Unicode字符集中的字符,如汉字

  12. 包(其实就是文件夹,用于对类进行管理):全部小写,多级包用点隔开。一般公司域名反写

  13. 不要使用中文汉字!

  14. 多敲多思考!!!

三、Java注释

========

Java 支持单行以及多行注释,注释中的字符将被 Java 编译器忽略。 实例:

/**

  • 多行注释

  • @Author:菜菜bu菜

*/

//单行注释:这是一个Java入门程序

public c

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

开源分享完整内容戳这里

lass HelloWorld {

public static void main(String[] args) {

/* 这个也是单行注释 输出 Hello World*/

System.out.println(“Hello World”);

}

}

四、关键字&标识符

=========

关键字概念及特征


概念:

  • Java关键字是事先定义好的对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。

特征:

  • 完全小写

  • 在高级编译器当中有特殊颜色,例如在增强版记事本中(例如Notepad++)有特殊颜色

关键字大全


java中有50个关键字3个保留字,均不能用来命名标识符,分别是 关键字:

| 关键字 | 说明 | 关键字 | 说明 | 关键字 | 说明 | 关键字 | 说明 | 关键字 | 说明 |

| — | — | — | — | — | — | — | — | — | — |

| private | 私有的 | protected | 受保护的 | public | 公共的 | default | 默认 | abstract | 声明抽象 |

| class | 声明类 | extends | 继承 | final | 最终的 | implements | 实现(接口) | interface | 声明接口 |

| native | 原生方法(非 Java 实现) | new | 创建 | static | 静态 | strictfp | 精准 | synchronized | 线程 |

| transient | 短暂 | volatile | 易失 | break | 跳出循环 | case | switch 选择 | continue | 继续 |

| default | 默认 | do | 执行 | else | 否则 | for | 循环 | if | 如果 |

| instanceof | 实例 | return | 返回 | switch | 根据值选择执行 | while | 循环 | assert | 断言表达式是否为真 |

| catch | 捕捉异常 | finally | 有没有异常都执行 | throw | 抛出一个异常对象 | throws | 声明一个异常可能被抛出 | try | 捕获异常 |

| import | 引入 | package | 包 | boolean | 布尔型 | byte | 字节型 | char | 字符型 |

| double | 双精度浮点 | float | 单精度浮点 | int | 整型 | long | 长整型 | short | 短整型 |

| super | 父类 | this | 该类 | void | 无返回值 | goto | 关键字 | const | 关键字 |

保留字:true、false、null,保留字是java预留的关键字

标识符是什么


凡是可以由自己命名的地方都称为标识符.

  • 例: 项目名 ,包名 ,类名 .方法名

标识符命名规范


  • 不能是关键字

  • ② 所有标识符必须由一个字母(a-z 或 A-Z)或数字0-9,$和_

  • 不能以数字开头

  • ④ 区分大小写,驼峰命名:FirstName、UserName

  • ⑤ 包名全部小写,类名全部大驼峰式

  • 见名知意

例如:项目名:writetest 包名:com.cai.test 类名:TestDemo

五、常量&变量

=======

常量:程序运行过程中不会改变的量。(字符 ‘b’、字符串 ‘abc’、整数 1、布尔 true|false)

变量:运行过程中可以改变的量。(局部变量、类变量(静态变量)、成员变量(非静态变量))

作用域 : 从定义变量的一行开始,一直到直接所属的大括号结束。

基本数据类型


| 类型 | 字节数 | 最大存储数据量 | 数据范围 |

| — | — | — | — |

| byte | 8位 | 255 | -128~127 |

| short | 16位 | 65536 | -32768~32767 |

| int | 32位 | 2的32次方减1 | -2的31次方到+2的31次方减1 |

| long | 64位 | 2的64次方减1 | -2的63次方到+2的63次方减1 |

| float | 32位 | 3.4e-45~1.4e38 | 直接赋值时必须在数字后加上f或F |

| double | 64位 | 4.9e-324~1.8e308 | 赋值时可以加d或D也可以不加 |

| boolean | 1位 | 默认值是 false | 只有true和false两个取值 |

| char | 16位 | 存储Unicode码 | 用单引号赋值 |

数据类型转换


自动类型转换(隐式):代码不需要进行特殊处理,自动完成,小到大

long num1 = 2021112;

强制类型转换(显式):代码需要进行特殊的格式处理,不能自动完成,大到小

int num=(int)2021112;

注意

  • 1.强制类型转换有可能发生精度损失、数据溢出。

  • 2.byte / short / char这三种类型都可以发生数学运算,例如加法“+”.

  • 3.byte/short/char这三种类型在运算的时候,都会被首先向上提升成为int类型,然后再计算。符合ASCII编码表

六、运算符&表达式

=========

在这里插入图片描述

算术运算符


算术运算符:常见的四则运算符、自增、自减,它们的作用和在数学中的作用一样。

| 运算符 | 描述 | 例子 |

| — | — | — |

| + | 加 | 1+1-2 |

| * | 减 | 2-1=1 |

| * | 乘 | 2*5=10 |

| / | 除 | 10/2=5 |

| ++ | 自增 | int a=1;a++ or ++a =2 |

| – | 自减 | int a=1;–a or a-- =0 |

| % | 取余 - 左操作数除以右操作数的余数 | 24%=3 |

实例:

public class Test1{

public static void main(String[] args){

int a = 3;

int b = 3;

int x = 2*++a;

int y = 2*b++;

System.out.println(“自增运算符前缀运算后a=”+a+",x="+x);

System.out.println(“自增运算符后缀运算后b=”+b+",y="+y);

}

}

结果:

自增运算符前缀运算后a=4,x=8

自增运算符后缀运算后b=4,y=6

关系运算符


关系运算符:关系运算符有6种关系,分别为小于、大于、小于等于、大于等于、等于、不等于。比较的结果是一个布尔值( true 或 false )

| 运算符 | 描述 | 例子 | 结果 |

| — | — | — | — |

| > | 大于 | 2>1 | true |

| >= | 大于等于 | 2>=1 | true |

| < | 小于 | 2<1 | false |

| <= | 小于等于 | 2<=1 | true |

| == | 等于 | 2==1 | false |

| != | 不等于 | 2!=1 | true |

逻辑运算符


逻辑运算符:主要用于进行逻辑运算,连接两个Boolean值,代表两个条件

假设布尔变量A为真,变量B为假

| 运算符 | 描述 | 例子 | 结果 |

| — | — | — | — |

| && | 与 | (A && B) | false |

| II | 或 | (AIIB) | true |

| ! | 非 | !(A && B) | true |

| ^ | 异或 | 2<=1 | (A ^ B) |

异或:有且只能有一个为true

实例:

public class Test2 {

public static void main(String[] args) {

boolean a = true;

boolean b = false;

System.out.println("a && b = " + (a&&b));

System.out.println("a || b = " + (a||b) );

System.out.println("!(a && b) = " + !(a && b));

System.out.println("(a^b) = " + (a ^ b));

}

}

结果:

a && b = false

a || b = true

!(a && b) = true

(a^b) = true

赋值运算符


赋值运算符:基本的赋值运算符是“=”。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。

| 运算符 | 描述 | 例子 | 结果 |

| — | — | — | — |

| = | 简单的赋值运算符,将右操作数的值赋给左侧操作数 | C = A + B | 将把A + B得到的值赋给C |

| + = | 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 | C + = A | 等价于C = C + A |

| - = | 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 | C - = A | 等价于C = C - A |

| * = | 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 | C * = A | 等价于C = C * A |

| / = | 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 | C / = A | C 与 A 同类型时等价于 C = C / A(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 |

| << = | 左移位赋值运算符 | C << = 2 | 等价于C = C << 2 |

| >> = | 右移位赋值运算符 | C >> = 2 | 等价于C = C >> 2 |

| &= | 按位与赋值运算符 | C&= 2 | 等价于C = C&2 |

| ^ = | 按位异或赋值操作符 | C ^ = 2 | 等价于C = C ^ 2 |

| I= | 按位或赋值操作符 | C I= 2 | 等价于C = C I2 |

位运算符


位运算符:位操作是程序设计中对位模式按位或二进制数的一元和二元操作。在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。

| 运算符 | 描述 | 例子 | 结果 |

| — | — | — | — |

| & | 如果相对应位都是1,则结果为1,否则为0 | (A&B) | -得到12,即0000 1100 |

| I | 如果相对应位都是 0,则结果为 0,否则为 1 | - (A | B) |

| ^ | -如果相对应位值相同,则结果为0,否则为1 | -(A ^ B) | -得到49,即 0011 0001 |

| 〜 | -按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | -(〜A) | -得到-61,即1100 0011 |

| << | -按位左移运算符。左操作数按位左移右操作数指定的位数 | -A << 2 | -得到240,即 1111 0000 |

| >> | -按位右移运算符。左操作数按位右移右操作数指定的位数 | -A >> 2 | -得到15即 1111 |

| >>> | -按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 | - A>>>2 | -得到15即0000 1111 |

实例:

//来源https://www.runoob.com/java/java-operators.html

public class Test2 {

public static void main(String[] args) {

int a = 60; /* 60 = 0011 1100 */

int b = 13; /* 13 = 0000 1101 */

int c = 0;

c = a & b; /* 12 = 0000 1100 */

System.out.println("a & b = " + c );

c = a | b; /* 61 = 0011 1101 */

System.out.println("a | b = " + c );

c = a ^ b; /* 49 = 0011 0001 */

System.out.println("a ^ b = " + c );

c = ~a; /*-61 = 1100 0011 */

System.out.println("~a = " + c );

c = a << 2; /* 240 = 1111 0000 */

System.out.println("a << 2 = " + c );

c = a >> 2; /* 15 = 1111 */

System.out.println("a >> 2 = " + c );

c = a >>> 2; /* 15 = 0000 1111 */

System.out.println("a >>> 2 = " + c );

}

}

结果:

a & b = 12

a | b = 61

a ^ b = 49

~a = -61

a << 2 = 240

a >> 2 = 15

a >>> 2 = 15

其他运算符


条件运算符(?:):件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。 实例:

public class Test3 {

public static void main(String[] args) {

//x ? y : z

//如果x==true,则结果为y,否则结果为z

int score = 80;

String type = score < 60 ? “不及格”:“及格”;//必须掌握

//if

System.out.println(type);

// System.out.println(type);​

int score1 = 50;

String type1 = score < 60 ? “不及格”:“及格”; //必须掌握

//if​

System.out.println(type1);

}

}

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一些常见的JavaSE基础面试及其答案: 1. Java的基本数据类型有哪些? Java的基本数据类型包括:byte、short、int、long、float、double、char、boolean。 2. String是基本数据类型吗? 不是。String是Java的一种对象类型,它属于引用类型。 3. Java的访问修饰符有哪些?它们的作用是什么? Java的访问修饰符有public、private、protected和默认访问修饰符。它们的作用是控制类、属性和方法的访问权限。其,public表示公共的,可以被任何其他类访问;private表示私有的,只能被本类访问;protected表示受保护的,可以被本类、同包及其子类访问;默认访问修饰符表示不加访问修饰符,只能被同包的其他类访问。 4. Java的final关键字有哪些用途? final关键字可以用来修饰类、属性和方法,它的作用如下: - final修饰类:表示该类不能被继承。 - final修饰属性:表示该属性不能被修改,即为常量。 - final修饰方法:表示该方法不能被子类重写。 5. 什么是Java的异常? 异常是在程序运行过程出现的一些错误或意外情况,它可以分为受检异常和非受检异常。受检异常必须在代码进行处理或者声明抛出,否则会在编译时产生错误;非受检异常则不需要处理或声明抛出。 6. try-catch-finally语句块的作用是什么? try-catch-finally语句块用于处理Java的异常。其,try语句块用于执行可能抛出异常的代码;catch语句块用于捕获并处理异常;finally语句块用于在无论是否有异常抛出时都会执行的代码块。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值