java
个人向日记
这个作者很懒,什么都没留下…
展开
-
使用String的lastIndexOf(String str)方法,可能会遇到的一个bug
public static String f(String s){ if(s.lastIndexOf(" ")==(s.length()-1)){ s=s.substring(0,s.length()-2); } return "["+s+"]"; }删除字符串s的最后一个空格,和逗号。对于空字...原创 2019-04-13 20:56:17 · 1914 阅读 · 0 评论 -
简单排序
最近一直看到排序这个关键字,就准备开始读《Java数据结构和算法》。下面的代码包括冒泡排序、选择排序和插入排序。对于随机数组,插入排序用时总是最短。bubble用时:202 msselect用时:185 msinsert用时:60 msbubble用时:188 msselect用时:183 msinsert用时:60 msbubble用时:192 msselect用时...原创 2019-04-08 00:00:51 · 160 阅读 · 0 评论 -
我以为重写和重载是一回事!
子类重写父类方法override一个类中的方法重载overload原创 2019-04-01 22:31:08 · 76 阅读 · 0 评论 -
插入排序和二分查找
在插入数据时,用二分查找法查找数据,而不是一一比较。意外收获:条件:数据从小到大,假设a[a.length]为无穷大。二分查找时,找不到,则左右索引最后相等,目标数据会比当前索引指向的数据小。 public static void insertSortWithBinarySearch(int[] a) { if (a == null) { return; } ...原创 2019-04-10 22:20:38 · 399 阅读 · 0 评论 -
类中代码运行顺序
一个普通类A(无父类,Object不算)static {} 静态代码块只调用一次。 初始化时,静态变量、静态代码块执行先后顺序为在代码中书写的先后顺序。 每创建一个实例对象都会执行一次创建这个实例的构造方法。一个子类B(继承A)执行自己的静态代码块前,会先执行父类的静态代码块。 创建一个实例对象会先执行父类的构造方法(子类构造方法中super的父类构造方法,没有就是父类的默认...原创 2019-03-29 23:07:29 · 197 阅读 · 0 评论 -
误打误撞err 输出台输出红字
Console出现红字,原来把System.out.println();写成System.err.println();谢谢 327844761原创 2019-03-18 23:03:31 · 257 阅读 · 0 评论 -
一个类中方法名和参数不能完全一样
Duplicate method say() in type Method方法名和参数相同则为同一个方法,返回参数不同也不行。 public void say(){ } public int say(){ return 1; }原创 2019-03-19 20:12:41 · 1009 阅读 · 0 评论 -
java对象分别作为形参和实参的情况(方法是否改变了参数对象的值)
deleteNodeWithValue(node (1,2,3,4),2);System.out.println(node); //print node(1,3,4) 改变了nodeSystem.out.println(deleteNodeWithValue(node (1,2,3,4),2)); //print node(1,3,4) deleteNodeWithValue(n...原创 2019-02-26 23:27:45 · 1154 阅读 · 0 评论 -
冗余代码
public static Node reverseNode(Node node){ Node newHead=null; while(node!=null){ Node temp=node; node.setNext(newHead); newHead=node; if(node.getNext()!=null){ node=temp.getNe...原创 2019-02-26 20:43:33 · 834 阅读 · 0 评论 -
位运算、逻辑运算、移位运算和原码、反码、补码
位运算~:取反NOT&:与AND|:或OR^:异或EXCLUSIVE-OR逻辑运算&&:AND||:OR!:NOT移位运算<<:左移>>:算术右移(右边补最高位的值,故非负数右边补0,负数右边补1)>>>:(Java)逻辑右移(右边补0)原码sign-magni...原创 2019-03-04 22:09:06 · 512 阅读 · 0 评论 -
null先写调用方法后写赋值(循环)
错误代码 public static Node createLinkedList(List<Integer> data){ Node head=null; Node last=null; while(data!=null&&!data.isEmpty()){ Node node=new Node(data.get(0)); if(head...原创 2019-02-24 23:20:45 · 171 阅读 · 0 评论 -
构造器(继承)
一个普通类(A)可以不定义构造器,此时它的构造器是默认构造器public A(){};。 一个普通类(A)定义了构造器(非默认),此时它的构造器只是声明的构造器。没有默认构造器了。 一个普通子类(Son)的构造器:父类(Father)不定义构造器,或为 public Father(){};,子类可不用声明构造器,此时它的构造器是public Son(){super();};。 父...原创 2019-02-18 21:14:40 · 704 阅读 · 0 评论 -
(Java)一个非null对象调用一个方法,退出方法后让自己为null
暂时无法实现。原创 2019-02-27 20:34:58 · 168 阅读 · 0 评论 -
递归(链表反转)
将一个单链表反转,结果得到的是链表的最后一个,以及第一个。确实是反转了,但是只剩下两个元素了。 public static Node reverseNode(Node node){ if(node==null||node.getNext()==null){ return node; } Node newHeadNode=reverseNode(node.getNext())...原创 2019-02-22 22:02:24 · 900 阅读 · 0 评论 -
静态方法和NullPointerException
记得在使用容器类的时候经常会忘记new一个容器,直接添加数据,在运行时产生异常NullPointerException。 今天出现这个异常,一脸懵逼。在一个类中写了打印该类信息的方法。在使用该...原创 2019-02-21 23:25:12 · 296 阅读 · 0 评论 -
int char String 之间的转换
int num=65; String str="65"; char c='A'; int str_int=Integer.parseInt(str);//String>int int char_int=(int)c;//char>int char int_char=(char)num;//int>char char str_char=...原创 2017-07-02 22:40:31 · 194 阅读 · 0 评论 -
克隆对象
output:a=[I@4e25154f:2 5 9 0Person [name=wang, age=21]theA=[I@404b9385:2 5 9 0Person [name=wang, age=21] public static void main(String[] args) throws IOException, ClassNotFoundException ...原创 2019-04-16 22:41:47 · 105 阅读 · 0 评论