`
文章列表
序列sequence: 列表、元组和字符串都是序列,对序列的操作有两种共同的特点,索引 和 截取; 索引,即根据位置 或 键 来获取对应的元素 截取,即截取 字符串 或 列表 的子集 索引: 使用 str[1] 格式获取某个位置上的元素 索引下标从 0 开始 截取: 使用 str[1:3] 截取某个区间上的元素 -1 为倒数第一个元素 str[1:] 第一个 到 末尾 str[:] 所有元素 -------------------------------------------------------------- str = ...
dict字典: 类似于java中的map, 键值对,键必须为字符串,值可以是任意对象。 使用大括号,键值对用冒号隔开,各个元素间用逗号隔开。类似于json字符串。创建: ab = {            'Swaroop'   : 'swaroopch@byteofpython.info',             'Larry'     : 'larry@wall.org',             'Matsumoto' : 'matz@ruby-lang.org',             'Spammer'   : 'spammer@hotmail.com'        }增加/修 ...
元组: 元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。 元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。 注意: 我们声明一个只包含一个元素的 列表 时可以使用 list = [1]; 但我们声明一个只包含一个元素的 元组 时不能使用如上方法,必须声明一个元素然后跟一个 逗号: list = (1,); -------------------------------------------------------------- 元组一般用于 带参数的 ...
在Python中有三种内建的数据结构——列表、元组和字典 列表: list 可变的数据类型,以中括号包含,以逗号分隔多个元素。 创建列表 list = ['a', 'b', 'd', 'c', 'f', 'e']; 获取列表长度 len(list) 迭代列表中的元素 for item in list: print item; 列表中的元素排序 list.sort(); list.sort(cmp=None, key=None, reverse=True); 添加元素 list.append() 删除元素 del ...
package com.huawei.sockets; import java.io.ObjectInputStream; import java.net.ServerSocket; import java.net.Socket; import com.huawei.entity.Person; public class Servers extends Thread { private Socket socket; // 包含客户端信息的 套接字 对象 public Servers(Socket socket) { this.socket = sock ...
方法重写:发生在 父类 与 子类当中,子类中一个方法与父类中的方法 名称 参数列表 返回值 都一样时,可以说子类重写了父类的方法,前提是 父类的 该方法不能是 private 的。访问权限不可以更改总结:方法重写,在子类中,方法首部必须相同。 方法重载:发生在 同一个 类 当中,与某一个方法有 相同的方法名不同的 参数列表 ,返回值可以相同可以不同。这样的一个方法就称为本类中一个方法的重载。方法的访问权限可以修改。 总结:方法重载,在本类中,方法名必须相同,方法参数列表必须不同,返回值 和 访问权限 可以不同。
使用标号跳出当前多重嵌套循环: a:for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { if (i == 7) break a; //直接退出到 标记 a 处的循环体外 System.out.print(j + " * " + i + " = " + (i*j) + "\t"); } System.out.println(); }   在以往的循环中,如果我们在内层循环想要结束整个嵌套的大循环体,仅仅使用一个break关键 ...

代码优化三则

1.避免空指针异常的判断if(username.equals(“zxx”){}应改为:if (("zxx").equals(username)) {}避免 空指针 异常 2.避免对 boolean 类型的判断int x = 1;return x==1?true:false; 应改为 return x == 1;因为,x==1表达式的结果本来就是 boolean 类型,所以没必要再对这个结果进行判断。 3.避免不必要的函数调用 这个循环,多次调用了 length() 这个方法。没次循环都会调用,这样会降低效率。for (int i = 0; i < str.len ...
==:用于 “基本数据类型” 比较 “值”用于 “引用数据类型” 比较 “内存首地址”比较的是 栈 内存中的值。 equals:用于 “未重写(覆盖)了 Object 类中的equals方法的引用数据类型” 将按照Object、类中的equals方法进行比较,而Object类中的 equals 方法实现仍然是使用 == 号作为比较的。所以,没有重写 equals 方法的引用类型比较的还是 “引用地址”。boolean equals(Object o){return this==o;} 用于 “重写(覆盖)了 equals 方法的 引用数据类型” 按照方法的实现来进行 比较。例如:Strng ...

main方法

在Java中,如果一个类要给Java的解释器直接装载运行,这个类中就必须有main方法。而main方法的定义又是独特的: public static void main(string[] args){ }   main方法为什么要这样定义呢?由于JavaVM 需要调用类的main方法,所以该方法的访问权限必须是 public 。JavaVM 在调用该方法时不需要创建对象,所以该方法必须是 static 的。该方法接String类型的命令行参数,将其存放在 args 中。
构造方法:在Java中,每个类都有至少一个构造方法。如果我们没有给该类显示的生命一个构造方法,那么系统会自动为该类产生一个默认的构造方法。默认的构造方法:与类同名,没有返回值,默认为 public 。当我们为一个类声明了一个显示的“非默认”的构造方法时,系统就不会为该类产生一个默认的构造方法了。一定要注意,当我们为一个类编写一个“非默认”的构造方法时,最好给该类再声明一个默认的构造方法,否则,当我们调用默认的构造方法创建对象时,就会出错了。这是程序员最忘记的一点。 C++中的析构方法:在一个对象即将被从内存中释放时,析构方法被调用,这个方法得到执行。在C++中常用析构方法来释放对象在生存期间所 ...

hashcode

      一般来讲,equals这个方法是给用户调用的,如果你想判断2个对象是否相等,你可以重写equals方法,然后在代码中调用,就可以判断他们是否相等了。简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等。举个例子,有个学生类,属性只有姓名和性别,那么我们可以认为只要姓名和性别相等,那么就说这2个对象是相等的。        hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,他在判断key是不是重复的时候就判断了hashcode这个方法,而且也用到了equals方法。这里不可以重复是说equals和hashcod ...

final

在Java中,可以使用final关键字类修饰 类 方法 属性:final修饰的 类 不能被 继承final修饰的 方法 不能被 子类重写final修饰的 变量 不能被 修改 注意:final修饰的变量,是指该变量所拥有的 引用地址 (指针) 不能改变,而该指针所对应的堆内存中的对象是可以改变的。 例如,对于如下语句:final StringBuffer a=new StringBuffer("immutable");执行如下语句将报告编译期错误:a=new StringBuffer("");但是,执行如下语句则可以通过编译:a.append(" ...
在Java中,将内存划分为 堆内存 和 栈内存 两种。 栈内存分配原则:在Java中,函数中定义的一些 “基本类型” 的 变量 和 对象 的 引用变量 都是在函数的“栈内存”中为这个变量分配内存空间,当超过变量的“作用域”后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存分配原则:堆内存用来存放有 new 关键字创建的对象和数组,在堆内存中分配内存,有Java虚拟机的“自动垃圾回收器”来管理。在堆内存中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆中的“首地址”,栈中的这个变量就成了 数组或对象 的 “引 ...
>> << 有符号位移 >>> <<< 无符号位移 位移,就是将数字所对应的二进制数据向某个方位移动指定的位数。移动后,遗弃一部分,补充一部分。 10101010001 >> 1 向右位移 一位,最后的 1 删除,首部是 1 填充一个 1 11010101000 位移时,Java根据最高位是几,位移后,就补充几。 而在c语言的位移,最高位填充几是根据系统决定的,所以这也是C语言不跨平台的一个小细节。 ================================= ...
Global site tag (gtag.js) - Google Analytics