1.两种打印方式
String [] values = {"abc", "def", "cvb"};
//两种打印的方式一模一样
for(String value : values){
System.out.println(value);
}
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
2.随机生成一个数组:(N和100000是根据需要自己确定)
final int N = 50000; //常量
int[] nums = new int[N];
for (int i = 0; i < nums.length; i++) {
nums[i] = (int)(Math.random() * 100000);
}
3.测试程序用时:
long startTime = System.currentTimeMillis();
/**此处是要测试的程序*/
long endTime = System.currentTimeMillis();
System.out.println("此程序共耗时:" + (endTime - startTime) + "毫秒!");
4.Java中自带的数组排序算法:
import java.util.Arrays;
Arrays.sort(nums); //nums是你已经定义好的一个数组名
//如果要逆序
for (int i = 0; i < nums.length / 2; i++) {
int temp = nums[i];
nums[i] = nums[nums.length - i - 1];
nums[nums.length - i - 1] = temp;
}
5.注意:–对象和数组、String类都是引用类型。
6.
//常用字符包装类
Character.isLetter(ch);
Character.isLetterOrDigit(ch);
Character.isJavaIdentifierPart(ch) //判断用来定义Java变量的单词中,除首字母外,其他字符是否合法
Character.isJavaIdentifierStart(ch) //判断Java变量中,第一个字符是否是合法字符
7.
public static void main(String[] args) { `
Demo demo = new Demo();
Swap(demo);
System.out.println(demo.attr1 + "\t" + demo.attr2);
}
static class Demo{
int attr1 = 10;
int attr2 = 50;
}
public static void Swap(Demo demo){//demo是一个临时变量,存放的是main中demo的地址
demo = new Demo();//意为在局部变量里又申请了一块空间,把这个空间地址的值覆盖了原来的值,相当于demo指向了另外一块新的内存空间,
//所以在新内存空间中调换不会影响原来空间的值,输出的还是10和50
int temp = demo.attr1;
demo.attr1 = demo.attr2;
demo.attr2 = temp;
}
8.
public static void main(String[] args){
String name1 = "abc";
String name2 = "abc";
System.out.println(name1 == name2);
}
答案是true!!!!
因为:
Java中为了效率考虑:
--以""包括的字符串,只要内容相同(顺序、大小写相同)
--无论在程序代码中出现几次,JVM都只会创建一个实例,放在字符串池中维护
但是如果是String name3 = new String("abc");
String name4 = new String("abc");
System.out.println(name3 == name4);
打印的则是false ,因为此处创建的是一个全新的内存,是不同的地址
9.
Scanner input = new Scanner(System.in);
//trim方法:去掉字符串左右两侧的空格,不会去除字符串之间的空格
//建议:在用户输入用户名后使用
System.out.println("请输入用户名:");
String uName = input.nextLine().trim();
System.out.println("--" + uName + "--");
10.
Scanner input = new Scanner(System.in);
String password = "ab3456abc";
//substring[beginIndex, endIndex) ,
System.out.println(password.substring(1, 3)); //所以截取的是[1,3) 故只打印b,3
System.out.println(password.substring(3));//从3号下标开始截取至最后一个,输出的是456abc
11.
//演示常用的几种String对象的构造方式
String str1 = "你好世界";
String str2 = new String(); //使用默认构造 String str2 = "";
String str3 = new String(str1);
char[] chArray = {'a', 'b', 'c'}; //在c语言中:字符数组和字符串的区别就在于最后一个元素是否是\0
//将字符数组转换成String对象
String str4 = new String(chArray);
//转换回去
chArray = str4.toCharArray();
//字节数组与字符串的转换 byte数据类型:-128到127之间
byte[] byteArray = {104, 101, 108, 108, 111};
String str5 = new String(byteArray);
System.out.println(str5);
//字符串转码
String str6 = new String(str1.getBytes(), "UTF-8");
System.out.println(str6);