JAVA String类学习
最近在找工作,基本都是java开发的方向,很多笔试、面试题都是围绕String类对象展开的,花样很多,但是万变不离其中,掌握了基本的原理,无论怎么变,实质都是一样的。下面总结一下关于String的基本知识点:
(一)String是final的
可能我们很多人遇到过这个问题final关键字有什么作用,其中一个回答就是final修饰类表示不可继承。大家有没有仔细想过为什么呢?我也曾花了一点时间google,网上的争论很多。有个解答很有意思:To computer languages or natural languages, I always prefer to ask what and how instead of why. Even though I know there are a lot of good and bad reasons behind them. The good ones make the language vital and successful, the bad ones make future improvement and replacement possible. Languages (natural and programming languages included) are not rigorous science, a lot of human factors are involved. To programming languages, another factor is the cost. This is a more philosophical and time-efficient decision of mine. You can make yours different than mine, of course.有些东西我们只需要知道是什么和如何做就可以了,至于为什么,在它后面可能暗藏深刻的哲学道理,超过了编程语言的本身,是语言创建者的一个思想的表达(或者是本身有bug,不得已而为之,呵呵)。
但是还是找到一些ms正确的原因:
第一,final修饰类表示不可被继承,final类的所有方法都是final的:这有两个好处:一是编译器会对final的方法进行内联的操作(Think in JAVA中表示这不是必须的)提高运行效率;二是防止恶意用户修改String类的某些方法,如length()
第二,让一个类无法继承,表明这个类没有什么可以改进或扩充的啦,可能开发者认为这个类已经足够了,不需要用户进行特别的改进
第三,无从证实,有解释说如果String类不是final,可能会导致恶意用户修改系统System的参数,如访问控制权限,它的所有方法都是可以改变的,会导致不安全。
和本文相关的我认为你得认识到final会导致对于String的操作产生什么现象,即任何对String的修改都会产生新的对象,但是如果修改后的对象和原来的对象一样,则直接返回原来的对象。
(二)如何构建String对象
1.首先String是个类,可以使用new直接创建:String s = new String("hello");
这里发生的一切和其他一切对象的生成一样
step
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
工作需要,针对java文件,作了一个行数统计的工具。统计的主要代码如下:
Set srcIn = fso.OpenTextFile(fileNm, ForReading)
Do While Not srcIn.AtEndOfStream
buf = srcIn.ReadLine
&nbs ......
最近学了servlet和oracle,也就把他们结合下,做个分页的页面出来。算是一种复习吧。
1.首先是oracle的分页显示SQL语句:
select * from(select a.*, rownum rn from (select * from Person) a where rownum <= MaxN ......
import java.util.Properties;
import javax.mail.FetchProfile;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.InternetAddress;
public class ReceiveMail
{
public ReceiveMai ......
今天发现一个很NB的玩意,让我们在开发的时候修改Java文件,不用重启服务器立刻生效!支持Jetty tomcat jboss等很多服务器,它就是JRebel。 http://www.zeroturnaround.com/jrebel/installation/ 这里有针对不同服务器的安装方法,基本上主流的都涵盖了,绝大多数程序员都能使用!我们公司用maven/jetty对项目进行构建和开 ......