本笔记(无异常处理与网络编程部分)整理自《java程序设计》-黄岚 王岩 王康平 编著

java数据     UI     I/O      java线程      数据库操作

Java数据

  byte 8bit

  short 16bit

  int 32bit

  long 64bit

  float 32bit

  double 64bit

Integer类

构造方法:public Integer(int value)
  public Integer(String s)

提供的方法:public int compareTo(Integer anotherInteger)
  public static int parseInt(String s)
    throws NumberFormatException
  public static int parseInt(String s, int radix)
    throws NumberFormatException
  public static String toBinaryString(int i)
  public static String toString(int i)
  public boolean equals(Object obj)
  public static Integer valueof(int i)
  public int intValue()

Float类的构造方法:
  public Float(float value)
  public Float(double value)
  public Float(String s)

常用的成员方法
  public static float parseFloat(String s)
    throws NumberFromatException
  public String toString()
  public String toString(float f)
  public int compareTo(Float anotherFloat)
  public short shortValue()
  public int intValue()

Character构造方法:
  public Character(char value)
常用的成员方法
  public static boolean isLetter(char ch)
  public static boolean isDigit(char ch)
  public static char toLowerCase(char ch)
  public static boolean isWhitespace(char ch)
  public static char toUpperCase(char ch)

Boolean构造方法:public Boolean(boolean value)
  publie Boolean(String s)
常用的成员方法
  public static boolean parseBoolean(String s)
  public static String toString(boolean b)

String类

类String提供了大量的方法,使得字符串的处理更加方便。
  public char charAt(int index) //返回指定索引处的char值
  public int length()//返回此字符串的长度
  public int indexOf(String str) //返回指定字符在第一次出现处的索引
  public boolean equalsIgnoreCase(String another) //忽略大小写的相等
  public String replace(char oldChar,char newChar) //替换所有匹配字符

提供的方法:
  public boolean startsWith(String prefix) //是否开始于一个字符串
  public boolean endsWith(String suffix) //是否结束于一个字符串
  public String toUpperCase() //转化成大写
  public String toLowerCase() //转化成小写
  public String substring(int beginlndex) //开始于begin位置的子字符串
  public String substring(int beginlndex,int endlndex) //开始于begin位置,结束于end位置的子字符串
  public String trim()//去掉字符串两端的空格

StringBuilder中常用的方法:
  public StringBuilder append (...) //追加参数(多种类型)中的内容到字符串中
  public StringBuilder insert ( ... ) //将任意参数的字符串形式插入到原有字符串指定的位置
  public StringBuilder delete (int start, int end) //删除从start开始到end-1为止的一段字符序列
  public StringBuilder reverse (StringBuilder str) //将字符序列逆序

正则表达式*(与字符串紧密相关)

A example of Regular expressions :
  import java.util.regex.*;
  public class Email {
  public static void main(String[ ] args) throws Exception {
  String input0 = "www.kevin@163.net";
  String input = input0;
  Pattern p = Pattern.compile("^\\.|^\\@");
  Matcher m = p.matcher(input);
  if (m.find()){
  System.err.println ("EMAIL can not start by '.' or '@'");
  }
  p = Pattern.compile("^www\\.");
  m = p.matcher(input);
  if (m.find()) {
  System.out.println("EMAIL can not start by 'www.'");
  }

  p = Pattern.compile("[^A-Za-z0-9\\.\\@_\\-~#]+");
  m = p.matcher(input);
  StringBuffer sb = new StringBuffer();
  boolean result = m.find();
  boolean deletedIllegalChars = false;
  while(result) {
  deletedIllegalChars = true;
  m.appendReplacement(sb, "");
  result = m.find();
  }
  m.appendTail(sb);
  input = sb.toString();
  if (deletedIllegalChars) {
  System.out.println(“Now your input is : "+input0);
  System.out.println(“The correct input need as : "+input);
  }
  }
  }

图形化界面(GUI)

容器类
  JFrame、JApplet、JDialog、JPanel
组件类
  JButton, JTextField, JTextArea, JComboBox, JList, JRadioButton,
  JMenu
辅助类
  Graphics, Color, Font, FontMetrics, Dimension, LayoutManager

JFrame构造方法:public JFrame()

  public JFrame(String title)

成员方法:setSise()

  setVisible()  

  setLocation()

  setDefaultCloseOperation()

  getContentPane()

  setTitle()

  public void setDefaultCloseOperation(int operation)中参数的4种取值:DO_NOTHING_ON_CLOSE,HIDE_ON_CLOSE,DISPOSE_ON_CLOSE,EXIT_ON_CLOSE

JButton构造方法:public JButton()

  public JButton(String text)

  public JButton(Icon icon)

  public JButton(String text,Icon icon)

成员方法:

  public void setText(String text)

  public setIcon(Icon icon)

  public void setBounds(int height,int width,int x,int y)

  public void addActionListener(ActionListener I)

JLabel构造方法:public JLabel(String text)

  public JLabel(Icon icon)

  public JLabel(String text,int horizontalAlignment)

  public JLabel(Icon icon,int horizontalAlignment)

  public JLabel(String text,Icon icon,int horizontalAlignment)

成员方法:

  public void setText(String text)

  public void setIcon(Icon icon)

  public void getText(String text)

  public void setHorizontalTextPosition(int textPosition)

  public void setVerticalTextPosition(int textPosition)

JTextField构造方法:public JTextField()

  public JTextField(String text)

  public JTextField(int columns)

  public JTextField(String text,int columns)

成员方法:

  public void addActionListener(ActionLister I)

  public void setColums(int colums)

  public void setText(String text)

文本⾯面板JTextPane

复选框JCheckBox

单选按钮JRadioButton

组合框(下拉列表)JComboBox

绘图Drawing
   继承JPanel

   重写paintComponent(Graphics g)
  Swing 传递一个图形对象给这个方法。
  常用绘图方法
  setColor()
  drawLine()

对话框JDialog

文件对话框JFileChooser
   打开文件showOpenDialog()
   存储文件showSaveDialog()

文本域JTextArea

菜单:JMenuBar
  JMenu
  JMenuItem

布局管理:BorderLayout,FlowLayout,GridLayout,GridBagLayout,BoxLayout

//方法1:直接实现监听器方式
  public class ButtonAct extends Frame implements ActionListener {
  //主类ButtonAct直接实现监听器接口
  private JButton b1;
  ... ... ...
  public ButtonAct() {
  ... ... ...
  b1.addActionListener(this); //为b1注册事件监听器ButtonAct类对象
  add(b1);
  ... ... ...
  }
  public void actionPerformed(ActionEvent e){
  //利用actionPerformed方法进行事件处理
  who.setText("Button 1");
  }
  ... ... ...
  }

//方法2:内部类实现监听器方式
  public class ButtonAct extends Frame {
  private JButton b1;
  ... ... ...
  public ButtonAct() {
  ... ... ...
  b1.addActionListener(new B1()); //为b1注册事件监听器B1类对象
  add(b1);
  ... ... ...
  }
  class B1 implements ActionListener { //利用内部类B1实现监听器接口
  //利用actionPerformed方法进行事件处理
  public void actionPerformed(ActionEvent e){
  who.setText("Button 1");
  }
  }
  ... ... ...
  }

//方法3:匿名内部类实现监听器方式
  public class ButtonAct extends Frame {
  private JButton b1;
  ... ... ...
  public ButtonAct() {
  ... ... ...
  b1.addActionListener( //为b1注册事件监听器
  new ActionListener (){ //利用匿名内部类定义
  监听器类
  public void actionPerformed(ActionEvent e){
  //利用actionPerformed方法进行事件处理
  who.setText("Button 1");
  }
  }
  );
  add(b1);
  ... ... ...
  }
  ... ... ...
  }

java.awt.event包中定义的事件适配器类包括以下
7个:
  ComponentAdapter(组件适配器);
  ContainerAdapter(容器适配器);
  FocusAdapter(焦点适配器);
  KeyAdapter(键盘适配器);
  MouseAdapter(⿏鼠标适配器);
  MouseMoQonAdapter(⿏鼠标运动适配器);
  WindowAdapter(窗⼝口适配器)。

I/O流 

InputStream:FileInputStream

    PipedInputStream//产生用于写入相关PipedOutputStream的数据,实现管道化

    FilterInputStream->LineNumberInputStream,DataInputStream,BufferedInputStream,PushbackInputStream;

    ByteArrayInputStream//允许将内存缓冲区当做InputStream

    SequenceInputStream//将多个InputStream转化为一个InputStream

    StringBufferInputStream//将String转换成InputStream

    ObjectInputStream

Reader:BufferedReader->LineNumberReader

    CharArrayReader

    InputStreamReader->FileReader

    FilterReader->PushbackReader

    PipedReader

    StringReader

Writer:同上+PrintWriter

    BufferedWriter有readLine();

Reader的方法:in read(),int read(char[] cbuf),int read(char[] cbuff,int offset,int length),void close(),long skip(long);

Writer的方法:void write(int c),void write(char[] cbuf),void write(char cbuf,int offset,int length),void write(String s),void write(String s,int offset,int length),void close(),void flush();

缓冲流

没有缓冲的I/O,直接读写效率低,对硬盘损坏大。

  BufferedReader(Reader in)

  BufferedReader(Reader in,int sz)

  BufferedWriter(Write out )

  BufferedWriter(Writer in,int sz)

  BufferedInputStream(InputStream in)

  BufferedInputStream(InputStream in,int sz)

  BufferedOutputStream(OutputStream)

  BufferedOutputStream(OutputStream out,int sz)

方法:

  void mark();//标记流中当前位置。

  void reset();//尝试将流定位到最近标记的点

  void readLine();//仅适用于BufferedReader

  void newLine;//仅适用于BufferedWriter,写入一个行分隔符

  void flush();//刷新流

  PrintStream (字符)
  PrintWriter (字节)
  为其他输出流添加了功能,使它们能够方便地打印各
  种数据值表示形式。分别针对字节和字符,提供了重
  载的print()和println()方法用于多种数据类型的输出
  不抛出IOException
  自动的flush()

  PrintWriter(Writer out)
  PrintWriter(File file)
  PrintWriter(OutputStream out)
  PrintWriter(String fileName)
  PrintStream(OutputStream out)
  PrintStream(File file)
   PrintStream(String fileName)

File类 java.io.File

  public File(String pathname)

  public File(String parent,String child)

  public boolean canRead()

  public booleam canWrite()

  public boolean exists()

  public boolean isDirectory()

  public boolean isFile()

  public boolean isHidden()

  public long last Modified()

  public long lengrh()

  public String getName()

  public String getPath()

  public boolean createNewFile() throws IOException

  public boolean delete()

  public boolean mkdir()

  public boolean mkdirs()

RandomAccessFile(File,String mode)

RandomAccessFile(String name,String mode)

  void seek(long pos)

  long getFilePointer()

  long length()

  void writeDouble(Double d)

  void writeUTF(String s)

压缩类:ZipOutputStream,GZipOutputStream,ZipInputStream,GZipInputStream

GZIP例:  BufferedReader in = new BufferedReader(
      new FileReader(args[0]));
      BufferedOutputStream out = new BufferedOutputStream(
      new GZIPOutputStream(new FileOutputStream("test.gz")));

线程:Thread 

构造方法:public Thread(ThreadGroup group,Runnable target,String name)

  public Thread()

  public Thread(ThreadGroup group,Runnable target,String name,long stackSize)

  public Thread(Runnale target)

  public Thread(String name)

  public Thread(Runnable target,String name)

  public Thread(ThreadGroup group,Runnable target)

  public Thread(ThreadGroup group,String name)

成员方法:interrupt()

  join()//等待该线程终止

  join(long millis,int nanos)

  sleep(long millis)

  sleep(long millis,int nanos)//毫秒+纳秒

  start()//启动线程

  yield()//暂停当前线程,并执行其他进程

  notify()//唤醒在此对象监视器上等待的单个线程

  run()//执行线程体

  notifyAll()

  wait()//导致当前线程等待

  wait(long timeout)//导致当前线程等待timeout毫秒

  wait(long timeout,int nanos)

  isAlive()//测试线程是否处在活动状态

  isInterrupted()

  getPriority()

  getId()

  getName()

  getState()

  setPriority(int newPriority)

  setName(String name)//改线程名字  

  继承Thread类创建线程的具体步骤:

  第1步:扩展Thread的类;
  第2步:用希望的执行代码来实现run()方法;
  public class <类名称> extends Thread {
  public void run() {
  //需要以线程方式运行的代码
  }
  }
  第3步:通过new关键字实例化该类的一个新对象(即一个线程);
  new <类名称>()
  第4步:通过调用start()方法启动线程。

  实现Runable接口创建线程具体步骤:

  第1步;实现Runable接口;

  第2步:用希望的执行代码来实现run()方法; public class <类名称> implements Runable { public void run() { //需要以线程方式运行的代码 } }

  第3步:通过new关键字实例化该类的一个新对象(即一个Runable对象),然后将之用作Thread()构造方法的参数,用来生成新的线程体对象; new Thread (new <类名称>())

  第4步:通过调用start()方法启动线程。

  设置方法同步 synchronized ReturnType methodName(parameterList){ method statement; }
  设置语句块同步 synchronized (object){ statement; }

数据库操作:

SQL语言的命令一般分为四类:
  查询语言:select…from…where…
  操纵语言:insert、update、delete…
  定义语言:create、alter、drop
  控制语言:grant、revoke、commit、rollback…

  create table <表名> (字段1 类型1(长度),字段2 类型2(长度) …… )

  drop table <表名>

  select<输出结果列表>from<表>[where<选择条件>][order by<排序条件>][group by<分组条件>]

  insert into<表名>[(<列表名>)]VALUES(<对应列的表值>)
  update<表名>set<列>=<值>[,<列>=<值>][where<定位条件>]
  delete from<表名>[where<条件>]

JDBC的基本功能:
  ①加载JDBC驱动程序;
  ②建立与数据库的连接;
  ③使用SQL语句进行数据库操作并处理结果;
  ④关闭相关连接。

JDBC API接口:java.sql.DriverManager  getDriver(String url),getDrivers(),getConnection(),registerDriver(java.sql.Driver driver),setCatalog(String database);

    java.sql.Connection  createStatement(),setAutoCommit(Boolean autoCommit),getAutoCommit(),commit(),close;

    java.sql.Statement  executeQuery(String sql),executeUpdate(String sql),execute(String sql);

    java.sql.ResultSet  next(),previous(),first(),last(),getXxx(id),getXxx("name"),close();

JDBC编程步骤:

  ①导入java.sql.*包:import
  ②加载JDBC驱动程序:Class.forName()
  ③定义数据库的URL:String url=“jdbc:derby:helloDB "
  ④连接数据库:getConnection(url)
  ⑤建立SQL语句对象:createStatement()
  ⑥执行SQL语句:executeQuery() 、execute() 、executeUpdate()
  ⑦处理结果集:next()、 previous()……
  ⑧关闭连接:commit()、 close()

java.sql.DriverManager接口URL列表
  Connection cn;
  MySQL:Class.forName( "org.gjt.mm.mysql.Driver" );
  cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
  PostgreSQL(http: Class.forName( "org.postgresql.Driver" );
  cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );
  Oracle:Class.forName( "oracle.jdbc.driver.OracleDriver" );
  cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );
  Sybase:Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
  cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
  Microsoft SQLServer:Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
  cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );
  Java DB: Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
  cn = DriverManager.getConnection("jdbc:derby:helloDB;create=true", sUsr, sPwd);
  ODBC:Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
  cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );
  DB2:Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
  cn = DriverManager.getConnection("jdbc:db2://192.9.200.108:6789/SAMPLE", sUsr, sPwd );

java复习笔记的更多相关文章

  1. JAVA复习笔记分布式篇:zookeeper

        前言:终于到分布式篇,前面把JAVA的一些核心知识复习了一遍,也是一个JAVA程序员最基本要掌握的知识点,接下来分布式的知识点算是互联网行业的JAVA程序员必备的技能:     概念:ZooK ...

  2. 【私人向】Java复习笔记

    此笔记学习于慕课网:Java入门第一季-第三季,想学的可以点击链接进行学习,笔记仅为私人收藏 建议学习时间:2-3天(极速版) 数据类型 基本数据类型存的是数据本身 引用类型变量(class.inte ...

  3. Java复习笔记--java中this 关键字

    Java中this关键字,this可以调用类的成员变量和成员方法,this还可以调用类中的构造方法.使用这种方式值得注意的是, 只可以在无参构造方法中的第一句使用this关键字调用有参构造方法. pu ...

  4. 【Java】Java复习笔记-第四部分

    反射 反射: 在运行时动态分析或使用一个类进行工作. java.lang.Class类:描述类信息的类. 类对象:描述一个类信息的对象,当虚拟机加载类的时候,就会创建这个类的类对象并加载该对象,Cla ...

  5. 【Java】Java复习笔记-三大排序算法,堆栈队列,生成无重复的随机数列

    冒泡排序 package com.lcw.bubble; public class BubbleSort { /** * 冒泡排序 * @param args * @author 成鹏致远 */ pu ...

  6. 【Java】Java复习笔记-第三部分

    修饰符abstract 抽象的,定义框架不去实现,可以修饰类和方法 abstract修饰类: 会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型 抽象类 ...

  7. 【Java】Java复习笔记-第二部分

    类和对象 类:主观抽象,是对象的模板,可以实例化对象 习惯上类的定义格式: package xxx; import xxx; public class Xxxx { 属性 ······; 构造器 ·· ...

  8. 【Java】Java复习笔记-第一部分

    配置java环境变量 JAVA_HOME:配置JDK的目录 CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码) PATH:指定可执行程序的位置 LINUX系统 (在" .ba ...

  9. JAVA复习笔记分布式篇:kafka

    前言:第一次使用消息队列是在实在前年的时候,那时候还不了解kafka,用的是阿里的rocket_mq,当时觉得挺好用的,后来听原阿里的同事说rocket_mq是他们看来kafka的源码后自己开发了一套 ...

随机推荐

  1. mysql 中order by 与group by的顺序

    mysql 中order by 与group by的顺序 是: select from where group by order by 注意:group by 比order by先执行,order b ...

  2. Spring-AOP标签scoped-proxy

    <aop:scoped-proxy/>介绍: Spring的Bean是有scope属性的,表示bean的生存周期.scope的值有prototype.singleton.session.r ...

  3. linux常用命令_1

    linux中命令格式是什么? 命令 [参数选项] [文件或路径] 中括号表示可选,命令的参数与路径文件可选 参数选择表示一个命令的不同功能 命令 和 参数选项 中必有一空格,多个参数连在一起写 几乎所 ...

  4. Servlet开篇

    Servlet开篇 前面我已经说过好多遍了,如何学习好一个东西其实就是2个问题: 1,这个东西是干嘛的?为什么要玩这个东西? 2,怎么样就玩好这个东西了?具体的应该玩这个东西的什么? 其实现在对于我来 ...

  5. vim批量注释

    vim批量注释 法一.在vim中 :20,30 s/^/#/g 20-30行 用 # 注释掉.(python是用#注释地---) :20,30 s/^#//g 20-30行 取消注释 法二. 1.多行 ...

  6. java对象引用-要掌握的细节

    hello ,好久没来了. 今天我来和大家分享一下有关引用变量的注意事项,一是加深一下自己的理解,二是对这块不太理解的同学可以看看. 大神可飘过,有什么不对或不足的地方请多多指教,谢谢. 假设场景: ...

  7. Java中的null值总结

    自我总结,有什么不对或不到位的地方,请指出,感激不尽! 目的:熟练掌握java中null值出现的情况,避免NullPointerException 代码环境准备:需要引入junit;将代码packag ...

  8. ADB Shell之手机性能测试

    Connect 夜神模拟器for Android 4.4.2 打开模拟器-在CMD输入如下连接测试设备 adb connect 127.0.0.1:62001 你也可以连接自己的手机设备 开发者选项- ...

  9. 深入理解JAVA虚拟机之JVM性能篇---基础知识点(运行时数据区域)

    一. 运行数据区域划分 各个数据区域功能如下: 1. 程序计数器: 较小的一块内存空间,可以看做是当前线程所执行的字节码的行号指示器,每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响,独立 ...

  10. 对List中每个对象元素按时间顺序排序

    需求: 需要对List中的每个User按照birthday顺序排序,时间由小到大排列. 代码实现: import java.text.SimpleDateFormat; import java.uti ...