java

//1.获取环境变量
System.getenv("PATH");
System.getenv("JAVA_HOME");
想要了解更多Java知识点击加入我们一起学习交流一起进步吧!
【java学习(部落)】:java学习(部落)

//2.获取系统属性
System.getProperty("pencil color");  // 得到属性值
java -Dpencil color=green
System.getProperty("java.specification.version");  // 得到Java版本号
Properties p = System.getProperties();  // 得到所有属性值
p.list(System.out);


//3.String Tokenizer
// 能够同时识别, 和 |
StringTokenizer st = new StringTokenizer("Hello, World|of|Java", ", |");
while (st.hasMoreElements()) {
    st.nextToken();
}

// 把分隔符视为token
StringTokenizer st = new StringTokenizer("Hello, World|of|Java", ", |",  true);


//4. StringBuffer(同步)和StringBuilder(非同步)
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append("World");
sb.toString();
new StringBuffer(a).reverse();  // 反转字符串


//5. 数字
// 数字与对象之间互相转换 - Integer转int
Integer.intValue();

// 浮点数的舍入  
Math.round()

// 数字格式化
NumberFormat

// 整数 -> 二进制字符串
toBinaryString()或valueOf()

// 整数 -> 八进制字符串
toOctalString()

// 整数 -> 十六进制字符串
toHexString()

// 数字格式化为罗马数字
RomanNumberFormat()
// 随机数
Random r = new Random();
r.nextDouble();
r.nextInt();


//6. 日期和时间
// 查看当前日期
Date today = new Date();
Calendar.getInstance().getTime();

// 格式化默认区域日期输出
DateFormat df = DateFormat.getInstance();
df.format(today);

// 格式化制定区域日期输出
DateFormat df_cn = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA);
String now = df_cn.format(today);

// 按要求格式打印日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
sdf.format(today);

// 设置具体日期
GregorianCalendar d1 = new GregorianCalendar(2009, 05, 06);  // 6月6日
GregorianCalendar d2 = new GregorianCalendar();  // 今天
Calendar d3 = Calendar.getInstance();  // 今天
d1.getTime();  // Calendar或GregorianCalendar转成Date格式
d3.set(Calendar.YEAR, 1999);
d3.set(Calendar.MONTH, Calendar.APRIL);
d3.set(Calendar.DAY_OF_MONTH, 12);

// 字符串转日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date now = sdf.parse(String);

// 日期加减
Date now = new Date();
long t = now.getTime();
t += 700*24*60*60*1000;
Date then = new Date(t);

Calendar now = Calendar.getInstance();
now.add(Calendar.YEAR, -2);

// 计算日期间隔(转换成long来计算)
today.getTime() - old.getTime();

// 比较日期
Date类型,就使用equals(), before(), after()来计算
long类型,就使用==, <, >来计算

// 第几日
使用Calendar的get()方法
Calendar c = Calendar.getInstance();
c.get(Calendar.YEAR); 

// 记录耗时
long start = System.currentTimeMillis();
long end = System.currentTimeMillis();
long elapsed = end - start;
System.nanoTime();  //毫秒

// 长整形转换成秒
Double.toString(t/1000D);


//7. 结构化数据
// 数组拷贝
System.arrayCopy(oldArray, 0, newArray, 0, oldArray.length);

// ArrayList
add(Object o)  // 在末尾添加给定元素
add(int i, Object o)  // 在指定位置插入给定元素
clear()  // 从集合中删除全部元素
Contains(Object o)  // 如果Vector包含给定元素,返回真值
get(int i)  // 返回指定位置的对象句柄
indexOf(Object o)  // 如果找到给定对象,则返回其索引值;否则,返回-1
remove(Object o)  // 根据引用删除对象
remove(int i)  // 根据位置删除对象
toArray()  // 返回包含集合对象的数组

// Iterator
List list = new ArrayList();
Iterator it = list.iterator();
while (it.hasNext())
Object o = it.next();
// 链表
LinkedList list = new LinkedList();
ListIterator it = list.listIterator();
while (it.hasNext())
Object o = it.next();

// HashMap
HashMap<String, String> hm = new HashMap<String, String>();
hm.get(key);  // 通过key得到value
hm.put("No1", "Hexinyu");
hm.put("No2", "Sean");
// 方法1: 获取全部键值
Iterator<String> it = hm.values().iterator();
while (it.hasNext()) {
    String myKey = it.next();
    String myValue = hm.get(myKey);
}
// 方法2: 获取全部键值
for (String key : hm.keySet()) {
    String myKey = key;
    String myValue = hm.get(myKey);
}

// Preferences - 与系统相关的用户设置,类似名-值对
Preferences prefs = Preferences.userNodeForPackage(ArrayDemo.class);
String text = prefs.get("textFontName", "lucida-bright");
String display = prefs.get("displayFontName", "lucida-balckletter");
System.out.println(text);
System.out.println(display);
// 用户设置了新值,存储回去
prefs.put("textFontName", "new-bright");
prefs.put("displayFontName", "new-balckletter");

// Properties - 类似名-值对,key和value之间,可以用"=",":"或空格分隔,用"#"和"!"注释
InputStream in = MediationServer.class.getClassLoader().getResourceAsStream("msconfig.properties");
Properties prop = new Properties();
prop.load(in);
in.close();
prop.setProperty(key, value);
prop.getProperty(key);

// 排序
1. 数组:Arrays.sort(strings);
2. List:Collections.sort(list);
3. 自定义类:class SubComp implements Comparator
    然后使用Arrays.sort(strings, new SubComp())
   
// 两个接口
1. java.lang.Comparable: 提供对象的自然排序,内置于类中
   int compareTo(Object o);
    boolean equals(Object o2);
2. java.util.Comparator: 提供特定的比较方法
   int compare(Object o1, Object o2)
   
// 避免重复排序,可以使用TreeMap
TreeMap sorted = new TreeMap(unsortedHashMap);

// 排除重复元素
Hashset hs - new HashSet();

// 搜索对象
binarySearch(): 快速查询 - Arrays, Collections
contains(): 线型搜索 - ArrayList, HashSet, Hashtable, linkedList, Properties, Vector
containsKey(): 检查集合对象是否包含给定 - HashMap, Hashtable, Properties, TreeMap
containsValue(): 主键(或给定值) - HashMap, Hashtable, Properties, TreeMap
indexOf(): 若找到给定对象,返回其位置 - ArrayList, linkedList, List, Stack, Vector
search(): 线型搜素 - Stack
// 集合转数组
toArray();

// 集合总结
Collection: Set - HashSet, TreeSet
Collection: List - ArrayList, Vector, LinkedList
Map: HashMap, HashTable, TreeMap



//8. 泛型与foreach
// 泛型
List<String> myList = new ArrayList<String>();

// foreach
for (String s : myList) {
    System.out.println(s);
}


//9. 面向对象
// toString()格式化
public class ToStringWith {
    int x, y;
    public ToStringWith(int anX, int aY) {
        x = anX;
        y = aY;
    }
    public String toString() {
        return "ToStringWith[" + x + "," + y + "]";
    }
    public static void main(String[] args) {
        System.out.println(new ToStringWith(43, 78));
    }
}

// 覆盖equals方法
public boolean equals(Object o) {
    if (o == this)  // 优化
        return true;
    if (!(o instanceof EqualsDemo))  // 可投射到这个类
        return false;
    EqualsDemo other = (EqualsDemo)o;  // 类型转换
    if (int1 != other.int1)  // 按字段比较
        return false;
    if (!obj1.equals(other.obj1))
        return false;
    return true;
}

// 覆盖hashcode方法
private volatile int hashCode = 0;  //延迟初始化
public int hashCode() {
    if (hashCode == 0) {
        int result = 17;
        result = 37 * result + areaCode;
    }
    return hashCode;
}

// Clone方法
要克隆对象,必须先做两步: 1. 覆盖对象的clone()方法; 2. 实现空的Cloneable接口
public class Clone1 implements Cloneable {
    public Object clone() {
        return super.clone();
    }
}

// Finalize方法
Object f = new Object() {
    public void finalize() {
        System.out.println("Running finalize()");
    }
};        
Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
        System.out.println("Running Shutdown Hook");
    }
});
在调用System.exit(0);的时候,这两个方法将被执行

// Singleton模式
// 实现1
public class MySingleton() {
    public static final MySingleton INSTANCE = new MySingleton();
    private MySingleton() {}
}
// 实现2
public class MySingleton() {
    public static MySingleton instance = new MySingleton();
    private MySingleton() {}
    public static MySingleton getInstance() {
        return instance;
    }
}

// 自定义异常
Exception: 编译时检查
RuntimeException: 运行时检查
public class MyException extends RuntimeException {
    public MyException() {
        super();
    }

  public MyException(String msg) {
        super(msg);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值