你知道分隔符和空白符的区别?你知道对象的定义吗?一文带你深挖基础问题,超详细【Java养成】

Source

Java学习打卡:第十五天

Java养成计划(打卡第15天)

JAVA SE(夯实基础系列----Java初步)


内容管理

在我们之前的分享中,我们已经将基本的数据,数据类型,包裹体,面向对象基础知识和界面编程,我们现在基本上就有一个大致的框架了,有一个共识是实践出真知,要想熟练地掌握这些知识,我们必须要不断地联系,当然,之后我还会分享一下网络编程和反射机制(后话),还有就是利用Java的邮件类发邮件,以及其他的都会分享,现在会是以实战为主,一起冲🦆

Java程序词法

大家一起夯实基础呀,当然重复的地方并且简单的地方就不会在写了

  • 程序的基本单位是 【字符】
  • Java采用的是国际化的Unicode编码,每个Unicode字符是用2B即16个二进制编码表示,回车符的ASCII编码是0A,但是Unicode就是00A;没有太大区别,前面的256个字符是相似的
  • 词法分析阶段,源代码是被分解为词法符号,空白符号,和注释,即token,whitespace,comment
  • 词法符号一共有5种:关键字,标识符,文字,运算符,分隔符

我们之前说过标识符被用作类,接口,方法,变量、和标号的名字,标识符可以由字母(包括汉字—),数字,下划线,或美元符号组成

所以说

不合法标识符: 2fcase、$3.14(不能带小数点)
合法标识符: $ 、 type、$n33

分隔符(详解)

  • () 圆括号 方法定义和方法调用时包括一些参数,改变表达式运算次序,强制类型转换
  • [] 中括号 定义数组类型,数组是特殊类哦,访问数组元素
  • {} 大括号 定义类、方法、块语句
  • ; 分号 分割语句,表示语句的结束,所以我们判断if,for语句的时候就看分号就可以了,特别是没有大括号的
  • , 逗号 变量定义语句中分隔变量
  • . 点号 指定完整类名,访问、调用对象的属性和方法

这里我们要注意一点就是千万不要弄成中文符号了,特别是逗号和分号 ,【在那种报错不明确的地方就是非常难受】 还有就是不要多加分号,这也是让人惋惜的事情 ;还有就是 == 和 = ……很多基本符号的问题会导致非常巨大的错误

面试问题(越基础越可能回答不上)

1 什么叫做对象,什么叫做类,类和对象的关系?

万物皆可对象,对象是对客观世界实体进行 抽象形成的软件模型,由数据和方法两部分组成

类是对一类相似对象的描述,这些对象具有相同的属性和行为的抽象,属性用于表示用于表示对象的静态特征,行为表示这一类对象的动态特征 【关键词 : 抽象,软件模型】

在面向对象的程序设计中,我们一般先定义类,基于类创建对象。对象也被称做类的实例化

2 为什么说Java是一种半编译半解释的程序设计语言?

和Java虚拟机有关系,这也是实现Java平台无关性的关键。Java编译器不会直接将源程序翻译成某种具体计算机上的指令代码,而是翻译成字节码,就是.class,这里后面的反射会用到,字节代码是JVM的指令代码,不能直接在指定计算机上直接运行

它的解释器就是直接解释的是字节代码

3 什么叫JVM,JRE

java vittual machine 是一个抽象的计算机处理器,用于执行具体的Java字节码,Java虚拟机通常由软件是实现,这个软件通常叫解释器,不同的系统有不同的JVM

JRE是Java的运行环境,它是由Java核心API和JVM组成 核心API 是一些字节代码文件的集合

4 Java有那些词法符号?空格符和分隔符的区别?

关键字、标识符、运算符、分隔符、文字

空白符用来分隔相邻的词法符号,本身不是词法符号,分隔符是一种词法符号,它除了分隔作用外,还有其他的规则和功能

相关细节

  • 注意区分一些Java关键字,就是大写了之后就不是关键字了,比如Abstract就不是关键字
  • main方法的代码主要是前面的次序 public static void ,里面的 是一个字符串数组,这里的args是可以改变的
  • Java的多行注释/* */不具有嵌套特性,只要前后都封闭就可
/*

  int num;
/*

*/

这样是可以的,只看最前面的和最后面的,中间那个没有配对也没有关系

Java项目实例分析

要求定义一个矩形类Rectangle ,然后定义获得周长,面积的方法

package FirstChapter;

public class Retangle {
    
      
	public int width;//宽
	public int height;//高
	
	public void setWidth(int w)
	{
    
      
		this.width = w;
	}
	public void setHeight(int h)
	{
    
      
		this.height = h;
	}
	public int getArea()
	{
    
      
		return width*height;
	}
	public int getPrimeter()//返回周长
	{
    
      
		return 2*(width + height);
	}
	public int getWidth() {
    
      
		return width;
	}
	public int getHeight(){
    
      
		return height;
	}
}

这就很基础的类的定义,属性和方法等定义就好了。

今天和大家分享的都是很基础的东西,并且量少,明天就会多一点干货~~