A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Elske 初级黑马   /  2018-8-13 21:55  /  1468 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Q:new Scanner(System.in).next() 和 new Scanner(System.in).nextLine() 的区别?
A:next以空格为结尾,nextLine以回车为结尾
Q:通过new出来的String对象是否是一个常量?
A:通过new出来的对象在堆内存中,但是储存的字符串实际上还是在字符串常量池中
A2:String实质是字符数组,两个特点:1、该类不可被继承;2、不可变性(immutable)
例如 String s1 = new String("myString");和 String s1 = "myString";
第一种方式通过关键字new定义过程:在程序编译期,编译程序先去字符串常量池检查,是否存在“myString”,如果不存在,则在常量池中开辟一个内存空间存放“myString”;如果存在的话,则不用重新开辟空间,保证常量池中只有一个“myString”常量,节省内存空间。然后在内存堆中开辟一块空间存放new出来的String实例,在栈中开辟一块空间,命名为“s1”,存放的值为堆中String实例的内存地址,这个过程就是将引用s1指向new出来的String实例
第二种方式直接定义过程:在程序编译期,编译程序先去字符串常量池检查,是否存在“myString”,如果不存在,则在常量池中开辟一个内存空间存放“myString”;如果存在的话,则不用重新开辟空间。然后在栈中开辟一块空间,命名为“s1”,存放的值为常量池中“myString”的内存地址
总结:字符串是常量,String类型的对象是引用数据类型,和常量无关,只是储存的地址指向的数据是常量
Q:同一个文件中,多个类不能同时用public修饰
A:虽然可以在同一个文件中写多个类,但必须有一个类用public修饰且类名与文件名相同
A2:因为编译的时候Java编译器会判断如果存在public类,会把该类当作这个Java源代码文件(编译单元)的对外接口,类加载器需要把该类加载,同时要把名字和文件名字一致,才能方便虚拟机在相应的包中找到相应类的信息,而只能有一个被public修饰的类是为了让虚拟机只从一个接口中进入,否则就会报错,运行的时候则是调用main()函数运行的。
Q:什么是正则表达式
A:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
简单点说,正则表达式跟平时用的字符串操作功能函数类似,但比这些函数的功能要强大的多。
举例说,你爱看某本非常之流行的小说,你想要从某个网站下载,并将这些内容分章节保存到你的计算机里,但直接下载的话,可能网页里面有很多不想要的(比如一些讨厌的广告什么的),如果要用字符串替换也可以做到,但许多广告字符串蛮狡猾滴说,老是有些小变化来着,如果每个都替换一下会累似人的,这时正则表达式就可以大有用处了,它可以通过某些规则适应这些变化,而自动删除。
Q:工具类Random和Math里面的Random方法的区别
A:Math里的Random会生成0.0到1.0之间的double数字
而工具类Random会提供更多方法,例如nextInt(i);//可以生成一个0到i之间的整数,左闭右开区间
Q:在ArrayList中,如果不声明泛型,则集合可以添加任意类型的元素吗?
A:可以
Q:如果一个实现类实现了多个接口,但是不想重写所有的抽象方法,把自己变成抽象类,还是一个实现类吗?
A:这个时候已经不是一个实现类了,相当于一个缓冲类
Q:为什么main方法的参数列表要写为String[] args?
A:
在标准的java代码编写时,无论代码量多少,最好一个源文件里只有一个类或接口(接口也要单独写在一个源文件里),因为JAVA是面向对象的语言,每个类都是抽象的结果,所以每个类都要单独写在一个源文件里.最好不要在一个.java的源文件里写很多的类.
编译器每编译一个.java文件(编译单元),对应着.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀名.class。因此,在编译少量.java文件之后,会得到大量的.class文件。在.java文件中,不是必须含有public类的。public类只是用来表示编译单元中存在公开接口。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马