Java基础部分(基本语法,Java特性等)

1.标识符

标识符由字符、下划线、美元符号和数字组成,长度不受限制,第一个字符不能是数字,标识符不能是关键字,也不能是null、false、true等非关键子。它是严格区分大小写的。

2.常量与变量

3.数据类型

8种基本数据类型,

逻辑:boolean 整数类型:byte short int  long 字符类型:char, 浮点类型:float,double.

4.运算符

+ - ,-- ,++

5.流程控制语句

if else

while

for

switch:支持类型有byte short int char,String.

6.方法

7.数组。

声明数组,数组名.length获得长度。

8.注释

9.java与PHP的区别

PHP暂时还不支持性java那样JIT运行时编译热点代码,但是PHP具有opcache机制

PHP函数库用C语言实现,Java的核心运行时类库(JDK/JRE/LIB/rt.jar,大于60MB)用Java编写,所以java运行时的时候,用户编写的代码以及引用的类库和框架都在JVM上解释执行。PHP内置模板引擎,自身就是模板语言。而java web 需要使用JSP容器如Tomcat或第三方模板引擎。

Java多线程编程需要Java开发者编码参与,而PHP不用。

10.Java是如何支持正则表达式的:

Java中的String类提供了支持正则表达式操作的方法,包括:matches(),replaceAll(),replaceFirst(),split().除此之外,java可以用Patten类表达正则表达式对象,它提供了丰富的API进行各种正则表达式操作。如:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class First {
    public static void main(String[] args){
      String string="one(tow)(three)";
        Pattern pattern=Pattern.compile(".*?(?=\\()");
        Matcher matcher= pattern.matcher(string);
        if(matcher.find()){
            System.out.println(matcher.group());
        }
    }

}

11.简述正则表达式及用途:

在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是用于描述这些规则的工具。换句话来说,正则表达式就是记录文本规则的代码。计算机处理的信息更多的时候不是数值而是字符串,正则表达式就是在进行字符串匹配和处理的时候最为强大的工具,绝大多数语言都提供了对正则表达式的支持。

12.java和javascript的比较:

两个公司开发的不同的两个产品。java是sun公司推出的面向对象的程序设计语言,特别适合于互联网应用程序开发:而javaScript是Netscape公司的产品,为了扩展NetScape浏览器的功能而开发的一种可以嵌入WEB页面中运行的基于对象和事件驱动的解释性语言。

基于对象和面向对象:JAVA是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象;JAVAScript是一种基于对象和事件驱动的编程语言,因而它本身提供了非常丰富的内部对象供设计人员使用。

解释和编译:Java的源代码在实行之前,必须经过编译。JavaScript是一种解释性编程语言,其源代码不需要编译,由浏览器解释运行。

强类型变量和弱类型变量:Java采用强类型变量检查,即所有变量在编译之前必须声明;JavaScript中变量时弱类型的,甚至在使用变量前可以不作声明,JavaScript的解释器在运行时检查推断其数据类型。

代码格式不一样。

13如何当用 break语句。前的多重使

14.& 和&&的区别:

&按位与,虽然两者都要求运算符左右两端的布尔值都是true。整个表达式才是true。

&&(逻辑与)当左边的表达式的值是false时,右边短路,不会运算,很多时候运用它。

15.int与Integer有什么区别

int的包装类就是Integer,从java5就引入自动装箱和自动拆箱机制,使得两者可以相互装换。

16.如何输出一种某种编码的字符串

String s=new String(str.getBytes("iso-88590-1),('utf-8");//使用getBytes方法。

17.String和StringBuffer的区别:

JAVA平台提供了两个类:String 和StringBuffer,它们可以存储和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你直达字符数据要改变的时候你就可以使用StringBuffer.典型地,你可以使用StirngBuffers来动态构造字符数据。

18.请说明String是最基本的数据类型吗?

Java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类。

20.Array与ArrayList的不同点:

Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。

Array大小是固定的,ArrayList的大小是动态变化的。ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。

对于基本类型数据,集合使用自动装箱来减少编码工作量,但是,当处理固定大小的基本数据类型的时候,这种方式相对慢。

21.值传递和引用传递

值传递:对于基本类型而言的,传递的是该变量的一个副本,改变副本不影响原变量。

引用传递:一般对于对象型而言的,传递的是该对象地址的一个副本,并不是原对象本身。所以对引用对象进行操作会同时改变原对象。一般认为java内都是值传递。

22.什么是自动装箱

自动装箱时java编译器在基本类型和对应的对象包装类型之间做的一个转化。比如把int转化成Integer,double转化为Double,等等,繁殖就是自动拆箱。

23.为什么4.0-3.6=0.400001这种现象

原因很简单:2进制的小树无法精确的表达式10进制小树,计算机咋计算10进制小数的过程中要先转化为2进制进行计算,这个过程中出现了误差。

24.10进制的数在内存中怎样存:补码的形式。

25==符比较的是什么

==对比两个对象基于内存的引用,如果连个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。“==”如果两边是基本类型,就比较数值是否相等。

26.如果Object若不重写hashCode()的话,hasjCode()如何计算出来的

Object的hashcode方法是本地方法,也即是用C语言或C++实现的,该方法直接返回对象的内存地址。

27.为什么哟啊重写equals还要重写hashcode?

HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承与Object类,器hashcode 码默认的内存地址,这个即使哟相同含义的两个对象,比较也是不相等的。hashMap中比较的key是这样的,先求出key的hashcode()比较其值是否相等,若相等在比较equals(),若相等则认为他们是相等的,若equals()不相等则认为他们不行等。如果只重写hashcode()不重写equas()方法,当比较equals()时知识看他们是否为同一个对象(即进行内存地址的比较)看,所以必定要两个方法一起重写

28.fianl关键字

当修饰一个类时:他是不能被继承的。

当修饰变量时:基本类型则表示一旦在初始化之后就不能修改,变成常量了,引用型则表示初始化便不能再让其指向另一个对象。

用final修饰的原因有两个:1.把方法锁定,一防止任何继承的类修改它的含义;第二个原因是效率。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值