---------android培训、java培训、期待与您交流! ----------
一.集合框架的工具类:内部封装好的静态功能
1.Collections:用于操作集合的工具类
List<String> list = new ArrayList<String>();
.....
①Collections.sort(list),对容器中元素按自然顺序排序
②Collections.max(list),获取list容器中元素的最大值
③Collections.binarySearch(list,"指定对象"),二分查找(查找指定对象),返回负数表示要查找对象不存在
④Collections.fill(list,"指定对象"),替换,将list中元素全部替换为指定对象
Collections.replaceAll(list,oldObj,newObj),替换,将list中指定元素替换为新对象
⑤Collections.reverse(list),反转,交换集合中元素位置
⑥Collections.reverseOrder(new 比较器对象()),返回一个比较器,将按照指定比较器强行逆转元素的顺序
⑦Collections.synchronizedList(list),返回一个线程安全的集合
⑧Collections.swap(list,index1,index2),为指定位置换位置
⑨Collections.shuffle(list),将list集合中的元素位置随机化
2.Arrays:用于操作数组的工具类
String[] str = {"aa","bb","cc"};
①Arrays.sort(str),将数组中元素排序,也可以传入参数按指定位置排
②Arrays.fill(str),替换数组中的元素
③Arrays.asList(str):返回一个泛型集合,把数组变成集合可以使用集合的思想和方法来操作数组
ArrayList<String> al = Arrays.asList(str); //但不能进行增加删除操作.
//把数组变集合,数组中的对象会直接转成集合中的对象
④集合转成数组:为了限定对元素的操作
ArrayList<String> al = new ArrayList<String>();
al.toArray(new String[al.size()]); //指定数组的长度为集合的长度
⑤高级for循环:for(数据类型 变量名 : 被遍历的集合或数组){...}
这种遍历方式虽然简化了代码,但有局限性,即它只获取元素,而不能操作元素
和传统for的区别:高级for必须有被遍历的目标,所以在遍历数组时最好使用传统for
⑥可变参数:JDK1.5版本后出现的新特性,是数组的简写形式,只需将要操作的元素作为参数传递即可
public void show(String str,int... arr) //可变参数一定要在列表的最后面
3.静态导入:(import static java.lang.System.*) ,导入的是类中所有的静态成员
①当类名重名时,需要指定具体的包名
②当方法名重名时,需要指定所属的对象或者类
二.其他对象
1.System对象:描述一些系统信息,它的属性和方法都是静态的
①System.getProperties():获取系统属性信息,返回Properties对象(Properties是Map集合的一个子类对象)
Properties p = System.getProperties(); //该集合中存储的都是字符串,没有泛型定义
②System.setProperty("myKey","myValue"):自定义系统信息,系统启动时,会加载
③System.getProperty("指定属性"):获取指定属性信息
2.Runtime对象:不可以new对象,类似单例设计模式
Runtime r = Runtime.getRuntime();
Process p = r.exec("可执行命令");//exec方法用于执行命令,返回一个进程
p.destory(); //杀掉子进程
3.Date对象:对日期和时间进行描述
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd E HH:mm:ss");
//E为星期;HH表示二十四小时进制;hh表示十二小时进制
System.out.print(sdf.format(d));
4.Calender对象:描述日历,可以用查表法替换月、日、星期等
Calender c = Calender.getInstance();
c.get(Calender.YEAR);
c.get(Calender.MONTH);//取值范围0-11
c.get(Calender.DAY_OF_MONTH);
c.get(Calender.DAY_OF_WEEK);
c.add("指定年/月/日",number);//在指定年/月/日加上number年/月/日,时间的偏移
5.Math:是一个工具类
Math.abs(); //返回一个数的绝对值
Math.ceil();//向上取整数
Math.floor();//向下取整
Math.round();//四舍五入
Math.pow(m,n);//返回m的n次幂
Math.random();//返回0-1间的随机数
//Random r = new Random();
r.nextInt(10);//返回0-9之间的随机整数
三.IO(Input Output)流:用于操作数据
1.概述
①按操作数据可分:字符流、字节流
字节流的抽象基类:InputStream、OutputStream
字符流的抽象基类:Reader、Writer
②按流向可分:输入流、输出流
③FileWriter:是Writer的子类对象,后缀名是父类名,前缀名是该流的功能
FileWriter fw = newFileWriter("要操作的文件");//FileWriter一初始化,必须指定要操作的文件。如果文件存在,会自动覆盖文件;如果不存在会自动创建到指定目录。
fw.write("abcdefg");//写入数据
fw.newLine();//一行一行的写入
fw.flush();//刷新
fw.close();//关闭流
2.IO异常处理方式
FileWriter fw = null ;
try{
fw = new FileWriter("要操作的文件"); //文件操作代码
fw.write("abcefd");
....
}catch(IOException e){
//异常处理
}
finally{
try{
if(fw!=null) //避免空指针异常
fw.close(); //必须关闭流对象
}catch(IOException e){
//异常处理
}
}
3.文件的续写:对已有文件的数据读写
FileWriter fw = new FileWriter("a.txt",true);//true表示将write的内容续写到a.txt末尾,不覆盖a.txt
4.文件的读取
FileReader fr = new FileReader();
char[] ch = new char[1024];//中转站数组
int num = 0;
while((num=fr.read(ch))!=-1){
System.out.print(new String(ch,0,num));
}
fr.close();
5.文件拷贝
FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader("a.txt");
fw = new FileWriter("b.txt");
char[] buf = new char[1024];
int len = 0;
while((len=fr.read(buf))!=-1){
fw.write(buf,0,len);
....
}
}catch(IOException e){
//异常处理
}
finally{
try{
if(fr!=null){
fr.close();
}
if(fw!=null){
fw.close();
}
}catch(IOException e){
//异常处理
}
}
---------android培训、java培训、期待与您交流! ----------
package io;import java.io.BufferedOutputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/**缓冲区写出字节时的缓冲区问题@author W*/public class Buff...
转自:http://www.yishimei.cn/network/782.htmlkaili linux iso:https://www.kali.org/downloads/上次给大家介绍了关于黑客专用系统Kali Linux后,有许多小伙伴都表现出了极大的兴趣,但是想要彻底深入的学习Kali Linux,不仅要知道它的用途与大概介绍,更要亲身实践才能学到真正的黑客技能,考虑到...
JVM(三)–垃圾收集算法这篇博客的内容包括:一、垃圾收集算法:1,标记——清除算法:2,复制算法:3,标记——整理算法:4,分代收集算法:二、涉及到的问题:1,标记清除,标记整理,复制算法分别是什么,各有什么缺点2,新生代和老年代各用什么算法?3,为什么要划分新生代和老年代?4,新生代分为什么?年轻代为什么分为Eden和Survior区?5,新生代和老年代的年龄阈值是多少?初识GC自动垃圾回收机制,简单来说就是寻找 Java堆中的无用对象。打个比方:你的房间是
1、获取手机屏幕当前显示的activity名与所属的包名:adb shell dumpsys window windows | findstr Current【延伸阅读】有人会有疑问:adb shell dumsys后面可以接哪些参数呢?其实很简单,我们在cmd中输入以下命令:adb shell service list,就会显示可以显示的参数:Found 178 services:0 ...
互联网产品设计进阶(10)关注赢利模式整天都在思考项目的进展,忙碌了一天,终于有点时间来打理思绪。晚上收到一封快件,收到一位编辑朋友送来的几本书,里面有一本最近比较热门的《设计原本》。读一本书时,我喜欢看书的前言,因为这里反映了作者的原始动机。正如书中所写,“思维的过程、人与人的
为什么80%的码农都做不了架构师?>>> ...
Docker部署SkyWalking文章目录Docker部署SkyWalking前置环境部署步骤部署服务端 skywalking-oap部署UI skywalking-ui服务器java项目部署源码包下载Jar 直接启动docker启动前置环境docker 19.03.13ElasticSearch 7.2.0部署步骤部署服务端 skywalking-oap -- 使用6.6.0版本的skywalking,先部署服务端 docker run --name skywalking-oap
应用在卸载后,会将App-specific目录下的数据删除,如果在AndroidManifest.xml中声明:android:hasFragileUserData="true"用户可以选择是否保留。对于SAF的使用,可以查看我之前写的SAF使用攻略,这里就不展开说了。最后这里有一个介绍Scoped Storage的视频,推荐观看:准备好使用分区存储 | ADS 中文字幕视频准备好使用分区存储2.权限变化==============================================
Traefik1.7 转发marathon上的服务1、准备docker-compose启动文件注:假设你的主机ip为:10.11.0.0,后面皆以此为假设部署traefik-docker-compose.ymlversion: '3.3'services: reverse-proxy: image: traefik:v1.7-alpine command: --api --docker ports: - "80:80" - "443:443"
人工智能Google Assistant机器学习套件 ML Kit跨平台支持支持文本识别、人脸检测、条码扫描、图像标记和地标识别支持离线和在线使用AR视觉定位系统 Vision Position System,简称VPS通过手机摄像头,用AR技术来为用户进行导航。Google Maps个性化更准确自动驾驶 Waymo操作系统Android P防沉迷系...
642-274认证题库首先Passquick642-274 IMPS MeetingPlace支持专家考试编号:642-274 认证:支持专家的MeetingPlace时间:75分钟(55-65题)可用语言:英语点击这里注册:Pearson VUE的考试政策:了解当前的政策和要求,考试教程:审查考试型的问题见下列642-274认证题库介绍。<br /> <br />642-274 认证题库 <br />Implementing Cisco Unified MeetingPlace Services<br /
原文在: PEP 3131 -- Supporting Non-ASCII Identifiers.Python2并不支持非ASCII码标识符. PEP的全称是Python Enhancement Proposal, 即Python增强提案. 这个3131提案创建于2007年5月. Python3于2008年12月发布.Rationale一节开篇明义...