java基础知识
说明
java的基础知识:
继承、接口、抽象类、泛型<T>,
字符串(普通型,增强型)、正则表达式、字符串解析、模式匹配,
date类、时间输入/输出格式、
List<V>,Set<V>,Map<K,V>,Stack<E>,
线程(Thread\Runable\线程同步\线程守护\线程联合),
文件\目录(创建\运行\判断),输入\输出流(I\O){四类流},
UI(布局/组件/事件/读取多媒体对象),
URL对象,java网络编程(套接制TCP-IP/多线程/UDP数据报/广播数据报/远程调用RIM),
数据库操作(JDBC/增删改查/用结果集更新数据库/缓冲/预处理/事务处理/批处理/模糊查询/
范围查询/复合查询/排序查询)。
Web的基础知识:
HTML标签(主体标签/样式标签/组件标签/框架/多媒体),
CSS样式表(定义的方式/类/伪类/引用的4种方式),
JavaScript(处理html标签对象/调用方法/使用事件/使用内置对象/应用),
JSP(声明/表达式/引用java代码/指令标签{在jsp页面的头部}/动作标签{引入|转发|跳转}
/动作标签/javabean标签/九大内置对象{范围|生命周期}/Cookie对象),
JavaBean(特点/范围),
Servlet(成员方法/生命周期/web.xml的配置/核心类/过滤器(4种方式)/监听器/获取初始化
参数),
JSP的两种开发模式(模式1/模式2MVC),
Dreamweaver CS6的使用,
Tomcat目录结构,
Eclipse的使用。
Struts2的基础知识:
配置struts.xml,
使用struts标签库,
定义action,和页面进行数据交互,
struts拦截器(定义/配置/使用),
struts校验。
Spring的基础知识:
配置applicationContext.xml文件,定义bean,
IOC(注入的方式),
AOP编程,
使用注解,
事务,代理,模板,缓冲池,引用外部文件。
硬编码方式。
Hibernate的基础知识:
配置文件,创建与使用,
增删改查,
表关联(1-1,1-n,n-n),
HQL查询语句。
java基础知识 内容
.
- 继承、类extends,只能有一个父类,super调用父类,
- 方法重构(名字相同参数不同),
- 多态(子类的多样), final不能继承-可以被匿名类引用,
- 上转型。
- 接口、interface 名,没有方法体,只能implement实现接口,可以多实现,为实现类提供实现方法的模板规范,可以有成员变量,接口回调。
- 抽象类、abstract 类,含有抽象方法的类,可以含有非抽象方法,只能继承不能new,和接口的功能类似。
- 泛型类、class 名称<泛型列表>(不能是基本类型),声明泛型 。
例:Chorus <Student,Button> model=new Chorus <Student,Button>();在声明的时候将泛型列表的Chorus <E,F>的类型确定了,为Student,Button,在泛型类中可以用E,F来表示类型。 - 内部类、在类内部定义的类,只能被这个类使用。
- 匿名类、将一个类的实现作为一个参数。
- 异常类、自定义一个类 MyException继承Exception类,当执行
例:throw(new MyException())时将会在异常处理模块中执行catch(MyException e){}的部分。 - 字符串、引用型,String用””定义,用数组定义,基本的方法(比较,长度,转字符数组,取字符),和其他基本类型之间的pre,to,””+互相转化方法;
StringBuffer类,可以操作字符串的内容(截取,代替,获取);
StringTokenizer类,可以解析字符串,有两个构造方法StringTokenizer(字符串,分隔符),分隔符的任意排列组合,返回结果集,hasMoreTokenizer是否为false来判断,nextTokens()来获取下一个对象 - 正则表达式、字符串对象调用matches(正则表达式),判断是否和正则表达式匹配,返回boolean类型;字符串对象调用replaceAll(正则表达式,替换的字符串)产生一个将匹配正则表达式的字串替换后的新的字符串对象;字符串调用split(正则表达式),返回一个字符串数组,以正则表达式作为分隔符;
- 字符串解析、用Scanner(字符串)类来分隔字符串,Scanner对象调用useDelimiter(正则表达式)来设置分隔符,返回一个结果集,可以精细化的获取数字型的结果,和非数字型的结果,hasNext()判断,next/nextInt/nextDouble获取下一个
- 模式匹配、建立模式对象Pattern.compile(正则表达式),建立匹配对象 Pattern对象.matcher(目标字符串),返回结果集,Matcher对象调用方法find()寻找返回Boolean(类似next()+hasNext()),group()返回匹配的字符串,replaceAll(替换的字符串)返回一个替换了所以匹配的字串的新的字符串,模式可以用|来连接,即正则表达式1|正则表达式2
- date类与时间输入/输出格式、格式对象SimpleDateFormat(“‘beijingtime’:yyyy-MM-dd hh:mm:ss(a)(EE)”),年月日时分秒上午星期,SimpleDateFormat对象.format(new Date),设置当前的时间的输出格式,返回字符串;创建日历对象Calendar.getInstance(),翻日历Calendar.set (时间),获取时间毫秒Calendar.getTimeInMillis();Calendar.get(Calendar.YEAR)…(一月是0)
- List< V>,链,曾add(E),删remove(节点数)/ remove(节点元素)删除第一个,改set(节点数, 替换节点元素),查get(节点数),判断是否元素contains(元素)返回Boolean,克隆clone(),转为数组toArray(),遍历Iterator< V> It =List< V>.iterator();判断hasNext(),获取next()。
- ArrayList< T>,顺序结构
- Set< V>,HashSet< T>集合,曾add(E),删remove(节点元素)删除第一个,查判断是否元素contains(元素)返回Boolean,判断一个集合是否包含另一个集合containsAll(集合),克隆clone(),转为数组toArray(),遍历Iterator< V> It =List.iterator();判断hasNext(),获取next()。集合的并addAll(集合),交retainAll(集合),差removeAll(集合),Set< V>实现了Collection< E >
- Map<K,V>,键值对,曾put(K,V),删remove(K),查get(K),判断是否包含键containsKey(K)返回Boolean,判断是否包含值containsValue(V)返回Boolean,克隆clone(),转为数组toArray(),遍历Collection collection= Map<K,V>.values();
Iterator< V> It = collection.iterator();排序键对象的类实现Conparator接口,实现比较大小的方法int compareTo(Object e)方法 - TreeMap,
- HashMap
- Stack< E>,栈,入栈push(),出栈pop();查search(元素对象)栈顶为1,没有元素为-1
- 线程(Thread\Runable\生命周期\线程同步\线程守护\线程联合),引用型,开始start(),自动调用方法run(),休眠sleep(毫秒),isAlive检测线程是否死亡,返回当前线程currentThread(),线程自己结束休眠interrupt();
- Runable是接口,要传入Thread(Runable );同步,用关键字synchronized修饰线程中的变量,方法,程序块;线程中的成员变量共享,局部变量私有;挂起wait();恢复notifyAll();联合B.join(),当前线程运行转为B线程;守护线程thread.setDaemon(true),当其他线程执行为,守护线程也要立刻停止执行,直接结束。
- 文件\目录(创建\运行\判断),创建file(文件路径),获取名字getName,判断文件是否存在exits(),获取父目录getParent(),判断是否是目录isDirectroy(),判断是否是文件isFile(),创建目录File.mkdir(),返回目录下的所以文件list()/listFiles(),创建文件File.createNewFile(),删除File.delete(),
- 运行可执行文件Runtime.getRuntime()然后Runtime.exec(cmd /k start 文件路径)
File file = new File(“C:\WINDOWS\system32”, “notepad.exe e:\hello.txt”);// C:\WINDOWS\system32是编译器;notepad.exe记事本解释器;e:hello.txt绝对路径
// exe.exec(file.toString());
// 或者:exe.exec(“C:\WINDOWS\system32\notepad.exe e:\hello.txt”);
exe.exec(“cmd /k start C:\Users\6688\Desktop\MV-少女时代-Gee-高清版-音扑网-587.mp4”);//可以运行文件// 打开一个word文档:exec(“Files\Microsoft Office\office\winword.exe \a.doc”); - 输入\输出流(I\O){四类流},
- 文件字节流FileInputStream(file)类和FileOutputStream(file)类,读read(),写write();
- 文件字符流FileReader(file)类和FileWrite(file)类,读read(),写write();
- 缓冲流BufferReader(FileReader)类和BufferWrite(FileWrite) ,读readLine(),写write();
- 数组流ByteArrayOutputStream()和ByteArrayinputStream(byte[]),toByteArray();
- 字符串流StringReader(字符串)和StringWrite(),数据流DataInputStream(InputStream)和DataOutputStream(OutputStream),
- 对象流ObjectInputStream(InputStream)和ObjectOutputStream(OutputStream),对象要序列化,实现Serializable,读readObject(),写writeObject();
- 随机读写流RandomAccessFile(file,”rw”);String.getBytes(“utf-8”)返回utf-8编码的字节数组;
- 文件锁 流对象.getChannel()得到信道对象FileChannel,获取文件锁对象FileLock(加锁)FileChannel.tryLock,解锁:FileLock.release()
- 解析文件、File file=File(文件路径);Scanner sc=new Scanner(file); sc.useDelimiter(正则表达式{分隔符}),判断hasNext();取next
- UI(布局/组件/事件/读取多媒体对象),窗体JFrame,菜单组件{菜单条JMenuber、菜单JMenu、菜单项JMenultem},
- 布局FlowLayout、BorderLayout、CardLayout、GridLayout,
- 中间容器{面板JPanel、滚动窗格JScrollPane、拆分窗格JSpliPane、分层窗格JLayerdPane},文本组件{文本框JTextField、密码框JPasswordField、文本区JTextArea},按钮JButton,标签JLabel,复选框JCheckBox,单选框JRadioButton,列表组件JComboBox(),表格JTable,树组件JTree、进度条JProgressBer,
- 事件XXXlistener,计时器Timer(时间,事件),键盘绑定,对话框JDialog
- URL对象,URL(资源路径) URL.openStream获得资源输入流,进行资源的读取。
- java网络编程(套接制TCP-IP/多线程/UDP数据报/广播数据报/远程调用RMI),InetAddress类getByName(域名/ip地址),获得本地ip,getLocalHost();
- TCP/IP服务器端ServerSocket(端口);ServerSocket.accept()等待客户端的套接字连接请求返回一个客户端专属套接字Socket对象客户端Socket(服务器ip地址,端口);///流连接,当建立套接字连接后Socket对象可以使用getOutputStream()获得输出流和getInputStream()获得输入流,套接字的流数据区域两段对接;当没有数据发送将堵塞流,一直等待到有数据时开始运行,
- UDP发送数据创建DatagramPacket(字节数组,长度,InetAddtress对象,端口)对象打包数据即数据报对象,发送数据报创建DatagramSocket()对象,DatagramSocket.send(DatagramPacket);///创建接收数据报对象DatagramPacket(字节数组,长度) ,再创建DatagramSocket(端口)对象接收数据报,即DatagramSocket.receive(DatagramPacket),数据信息放入了字节数组内;
- 广播数据报首先设置组播地址对象InetAddress.getByName(IP地址);然后创建多点广播套接字对象MulticastSocket(端口号);然后设置广播范围MulticastSocket.setTimeToLive(范围int)经历路由器的最大个数;然后将发送端或者接收端加入组播MulticastSocket.joinGroup(InetAddress组播地址对象),离开组播MulticastSocket.leaveGroup(InetAddress组播地址对象);接收MulticastSocket.receive(DatagramPacket)和广播数据MulticastSocket.send(DatagramPacket);
- 远程调用(RMI)接口Remote
- 数据库操作(JDBC/增删改查/用结果集更新数据库/缓冲/预处理/事务处理/批处理/模糊查询/范围查询/复合查询/排序查询)。
- 模糊查询where name like ‘[张李]%’,% 0个或多个,_ 一个,排序查询Order by height,
- 随机查找rs.absolute(行号)看例子,用结果集更新数据库表更新rs.updateString(2,”王小二”)、插入rs.moveToInsertRow();rs.updateString(2,”王小二”);rs.insertRow() ;
- 缓冲创建CachedRowSetImpl对象,将rs放入CachedRowSetImpl中,CachedRowSetImpl.populate(rs);
- 预处理PreparedStatement,通配符? setXXX(1,”sss”),
- 事务Connection.setAutoCommit(false),关闭自动提交,提交事务Connection.commit();事务回滚Connection.rollback();
- 批处理Statement.addBatch(sql);添加sql语句,执行批处理Statement.executeBatch()。