// synchronized 多线程互斥 可以加在函数头上// 设置线程是否为守护线程,主进程结束后,守护线程自动停止// this.setDaemon(true); // this.setPriority(MAX_PRIORITY); 设置优先级// this.wait(); 满足一定条件等待// this.nofity(); 满足一定条件使等待的语句可以继续执行下去// ArrayList/HashMap 在JDK1.5之前不是线程安全的// Vector/Hashtable是安全的// 产生一个线程安全的集合对象// Collections.synchronizedArrayList(list) // 很少写入而频繁读取可以用这两个// CopyOnWriteArrayList CopyOnWriteArraySet// 并发的哈希映射// putIfAbsend(), remove(), replace()// ExecutorService 接口// ThreadPoolExecutor 类// Executors 工具类// 常用方法// ExecutorService pool = Executors.newCachedThreadPool();// execute(Runnable r) 方法// pool.execute()// 线程中更新界面,后面写方法,或写lammda表达式// SwingUtilites.invokeLater() // 并行计算 (流)// .stream() 换成 .parallelStream()// DataInputStream InputStreamReader BufferedInputStream// 流的链接// BufferedReader in = // new BufferedReader(// new InputStreamReader(// new FileInputStream(file), "utf-8"// )// );// s = in2.readLine();// 布局// FlowLayout BorderLayout GridLayout 常用// 上述布局会让组件自适应大小// CardLayout GridBagLayout// FlowLayout 后面可以加两个参数// BorderLayout布局相关代码// setSize(500, 400);// setLayout(new BorderLayout());// add(top, BorderLayout.NORTH);// add(left, BorderLayout.WEST);// add(right, BorderLayout.EAST);// add(center, BorderLayout.CENTER);// add(bottom, BorderLayout.SOUTH);// setVisible(true);// gridLayout(4, 5) 4行5列// setLayout(null)时// 特殊布局 绝对布局 .setLocation(100, 20) // 常用组件// 标签、按钮// JLable JButton :ActionListener// 文本框、文本区域、文本事件// JTextField JTextArea JPasswordField// JFormattedTextFidld :TextListener// 单、复选按钮,列表与选择事件// JRadioButton JCheckBox JList JComboBox :ItemListener // 滚动条与调整事件// JScorllBar JScorllPane :AdjustmentListener// 画布与鼠标、键盘时间// canvas JComponent :KeyListener :MouseListener// Panel与容器事件// JPanel CompoentListener// JTextPanel 可编辑文本、网页、RTF// JScorllPane能自动滚动// 画图 Override Paint()// JOptionPane 标准对话框// JFileChooser 文件选择器// JColorChooser 颜色选择器// JMenuBar 菜单// JToolbar 工具栏// FileInputStream读取文件FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\demo.txt");byte[] str = new byte[fis.available()];fis.read(str);System.out.println(new String(str));fis.close();// FileOutputStream输出文件String str = new String("Hello World!");FileOutputStream fos = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\demo.txt");byte[] b = str.getBytes();fos.write(b);fos.close();// FileReader读取文件FileReader fd = new FileReader("C:\\Users\\Administrator\\Desktop\\demo.txt");char[] str = new char[30];fd.read(str);System.out.println(str);fd.close();// FileWirte输出文件FileWriter fw = new FileWriter("C:\\Users\\Administrator\\Desktop\\demo.txt");fw.write("你好啊,你在干什么");// 如果忘了关闭 fw.flush() 必须有fw.close();// BufferedReader读取文件BufferedReader br = new BufferedReader( new FileReader("C:\\Users\\Administrator\\Desktop\\demo.txt"));String str = null;while((str = br.readLine()) != null) {; System.out.println(str); }br.close();// 输入流的链接 BufferedReader br = new BufferedReader( new InputStreamReader( System.in));String str = null;while((str = br.readLine()) != null) {; System.out.println(str); }br.close();// BufferedWriter 输出流的链接BufferedWriter bw = new BufferedWriter( new FileWriter( new File("C:\\Users\\Administrator\\Desktop\\demo.txt") ));bw.close();// 输出对象 其中对象实现接口 Serializable 中的toString方法File file = new File("C:\\Users\\Administrator\\Desktop\\demo.txt"); ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream(file));Person me = new Person();oos.writeObject(me);oos.close();// 输入对象 ObjectInputStream ois = new ObjectInputStream( new FileInputStream( new File("C:\\Users\\Administrator\\Desktop\\demo.txt"))); Person me = (Person) ois.readObject();System.out.println(me.toString());ois.close();// transient表示一个域不是对象序列化的一部分// 比如密码等不希望在网络中传输的信息// 在需要隐藏的信息加在变量之前// 读取后就读不出来了// 文件写数据DataOutputStream dos = new DataOutputStream( new FileOutputStream( new File("C:\\Users\\Administrator\\Desktop\\demo.txt")) );dos.writeInt(100);dos.close();// 文件读数据DataInputStream dis = new DataInputStream( new FileInputStream( new File("C:\\Users\\Administrator\\Desktop\\demo.txt")));int x = dis.readInt();System.out.println(x);dos.close();// print输出PrintStream ps = new PrintStream(file);ps.print("ABCDE123");ps.close();// PrintWriter pw = new PrintWriter("demo1.txt");