JAVA笔试

1、去除字符串两端的空格,不能用字符串的相关函数,除了(charAt()以及getBytes()等)
JDK6中时这样写的:
 2705       public String trim() {
 2706           int len = count;
 2707           int st = 0;
 2708           int off = offset;      /* avoid getfield opcode */
 2709           char[] val = value;    /* avoid getfield opcode */
 2710  
 2711           while ((st < len) && (val[off + st] <= ' ')) {
 2712               st++;
 2713           }
 2714           while ((st < len) && (val[off + len - 1] <= ' ')) {
 2715               len--;
 2716           }
 2717           return ((st > 0) || (len < count)) ? substring(st, len) : this;
 2718       }
但是这里使用了substring函数。
空格的ASCII是32
这么简单,我写了半天。不过题意还是有不明之处。
2、判断线段是否相交。这个是算法的问题,想法越多,解法就越多。总之,难而);
利用矢量的叉乘为0的条件即可: 
   
  double  dx1   =   x2   -   x1;  
  float   dy1   =   y2   -   y1;  
  float   dx2   =   x4   -   x3;  
  float   dy2   =   y4   -   y3;  
  float   dd   =   dx1   *   dy2   -   dy1   *   dx2;   //   叉乘  
  bool   bIntersect   =   !(dd   >   -0.000001   &&   dd   <   +0.000001);

3、int exp = ((byte)(-1))&12345;A:12345;
byte:是 8位,即1个字节。但12345是int所以,结果还是转成int了,8位的-1转成int还是-1,即4个字节全是1,那最终结果还是12345咯。^_^,可惜我没做对。
4、int fun1(int i){return i<100?i:fun1(i/100)+i%100;} int exp = fun1(101010);
递归的问题,我很讨厌它。
第一次执行后:i=1010,然后把整fun1(1010)送入栈当中。
第二次执行后:i=10,然后把fun1(10)送入栈当中。
递归的问题就是要按照原路返回。
好,现在开始返回了,初次返回值为10,好与上一次的i%100=10相加结果等于20;
再次返回到fun1(1010),i%100还是10,再次相加等于30;
最终退出了哈。
A:30
其实这个递归都很简单了哦,如果多重递归,绝对让我当场沸腾了。
5、int exp = 0X4321>>8<<8;
A:0x4300。我的问题出在一个数当做8位了。谨记一个数占4位。
5、静态构造器的问题。
6、名词解释:MIDH、python。
7、判断区别题,都很简单的了哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值