JAVA之对象序列化
对象序列化何为对象序列化对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象
当序列化运行时检测到类中的以下问题之一时抛出。1.类的串行版本与从流中读取的类描述符的类型不匹配2.该类包含未知的数据类型3.该类没有可以访问的无参数构造函数
如果出问题了,如何解决给对象所属的类加一个值:private static final long serialVersionUI=42L;
如果一个对象的属性不想被序列化?用transient修饰这个属性
12345678910111213141516171819202122232425262728package 流.对象序列化;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutpu ...
JAVA之字节流
inputStream/OutputStream:输入/输出流的所有类的超类write()写入read()读出 -1时读到末尾
输入流是往外->读,输出流是往内->写字节缓冲流仅仅提供缓冲区BufferOutputStream/BufferInputStream
123456789101112131415161718192021222324252627282930313233package 流.字节流;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;public class BufferStreamDemo { public static void main(String[] args) { // ...
JAVA之递归使用
递归阶乘
1234567891011121314151617package 递归;public class DiGuiDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("5的阶乘:"+jiecheng(5)); } public static int jiecheng(int n) { if(n==1) { return 1; }else { return n*jiecheng(n-1); } }}
递归读取文件目录
123456789101112131415161718192021222324252627package File类;import java.io.File;public class DiGuiDemo2 { public static v ...
JAVA之Collects概述及其两个例子
针对集合操作的工具类sort(List l):将指定的列表按升序排序reverse(List l):反转指定列表中元素的顺序shuffle(List l):使用默认的随机源随机排列指定的列表
统计字符串12345678910111213141516171819202122232425262728293031323334353637383940package Map集合.统计字符串的数量;import java.util.HashMap;import java.util.Scanner;import java.util.Set;public class CollectionChar { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); System.out.println("请输入一个字符串"); String line=sc.nextLine(); ...
Python读取微信聊天记录生成词云
偶然的一个想法,于是便去试了一试python的使用过程
获取数据
获取数据参考https://blog.csdn.net/Kevinxgl/article/details/109992360
电脑安装安卓模拟器(蓝叠)
用电脑微信备份需要的聊天记录至模拟器
模拟器获取root权限 找到数据库存放位置/data/data/com/tencent.mm/MicroMsg在这个路径下有两个以数字和字母命名的文件夹,其中有一个存放这数据库EnMicroMsg.db(通常文件大的)复制到pc上备用
获取数据库密码:
机器的IMEI:直接在模拟器上下载IMEI工具
auth_uin :/data/data/com.tencent.mm/shared_prefs路径下的auth_info_key_prefs.xml中value值
计算密码:MD5在线加密工具,IMEI和auth_id,加密方式选择32位小。数据库密码就是前7位
其中的重点就是获取数据库,数据库软甲SqlLite Browser可 ...
JAVA之Map练习嵌套Arrlist
Arrlist嵌套HashMap
1234567891011121314151617181920212223242526272829303132333435363738package Map集合;import java.util.ArrayList;import java.util.HashMap;import java.util.Set;public class MapDemo3 { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<HashMap<String, String>> arr=new ArrayList<HashMap<String,String>>(); HashMap<String, String> h=new HashMap<String, String>(); h.put("张三", &quo ...
JAVA之Map集合
Interface Map<k,v> k:键的值;v:值的类型将键映射到值的对象;不能包含重复的键;每个键可以映射到最多一个值基本功能:put()添加元素remove()根据键删除键值对元素clear()移除所有键值对元素containsKey()判断集合是否包含指定的键containsValue()判断集合是否包含指定的值isEmpty()判断集合是否为空size()集合的长度,也就是集合中键值对的个数获取方法:get(key)根据键获取值keySet()获取所有键的集合values()获取所有值的集合
1234567891011121314151617public class MapDemo1 { public static void main(String[] args) { // TODO Auto-generated method stub Map<String, Integer> map=new HashMap<String, Integer>(); map.put("111", 1); ...
JAVA之泛型
泛型的本质是参数化类型,就是将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。定义格式:<类型>,<类型>.将来具体调用时候给定的类型可以看成实参,并且实参的类型只能是引用数据类型。泛型的好处:把运行时期的问题提前到了编译期间。避免了强制类型转换。泛型类:修饰符class类名<类型>{}泛型方法:修饰符<类型>返回值类型 方法名(类型 变量名){}泛型接口:修饰符interface接口<类型>{}
123456789101112131415161718192021222324package 泛型;public class Generic {public <T> void show(T t) { System.out.println(t);}}package 泛型;public class GenericDemo { public static void main(String[] args) { // TODO Auto-gen ...
JAVA之Set集合二
LinkedHashSet集合特点:哈希表和链表实现的Set接口,具有可预测的迭代次序。由链表保证元素有序,元素的存储和取出是一致的。由哈希表保证元素唯一,也就是说没有重复的元素。TreeSet集合特点:元素按照一定的规则进行排序,具体排序方式取决于构造方法。TreeSet():根据其元素的自然排序进行排序。TreeSet(Comparator comparator):根据指定的比较器进行排序。其余和``Set集合特点一样. 自然排序实现Comparable接口,重写compareTo`方法.比较器排序:使用匿名内部类
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263package 集合;public class Student implements Comparable<Student>{private String name;private int ag ...
JAVA之Set集合
Set集合:不包含重复元素,没有索引不能使用普通for循环哈希值:jdk根据对象地址或者字符串或者数字算出来的int类型的数值, hashCode()返回对象的哈希码值。同一个对象多次调用hashCode()方法返回的哈希值是相同的。默认情况下,不同对象的哈希值是不相同的,但是可以通过方法重写,可以实现不同对象的哈希值是相同的。HashSet集合:底层数据结构是哈希表,对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致。其余同Set集合。要保证元素唯一性,需要重写hashCode()和equals().哈希表:jdk8之前,底层采用数组+链表实现,可以说是一个元素为链表的数组。jdk以后,在长度比较长的时候,底层实现了优化。
1234567891011121314151617181920212223242526package 集合;import java.util.HashSet;public class HashSetDemo { public static void main(String[] args) { // TODO Auto-gen ...