深入理解java2:软件开发常用实用技术

1文件及目录:java.io

1.1基本操作

File f;
f=new File("a.txt");//当前目录下的文件
f=new File("e:\\ex\\","a.txt");//目录+文件
//目录也当做文件处理
File path=new File("e:\\ex\\");
File f=new File(path,"B.txt");

1.2常用操作函数

1.3RandomAccessFile:随机指定到文件中某个位置

2正则表达式

2.1基本概念:

写法分3部分:1哪类字符 2{数量}3位置
java
[0-9]{2,4}\b--匹配123 1988 20015 16
第1部分
.--通配
[]--字符集
[^]--排斥字符集
\d--[0-9]
\D--[^0-9]
\s--空白符
\S--非空白符
\w--[a-zA-Z0-9]单词字符
\W--[^\w]
第二部分
*--0或多个
+--1或多个
?--0或1次
n--n次
第三部分
\b--单词边界
()--组号
实例:
//匹配网址:\b(href)=('[^']+');//实际使用时还要\转义

2.2基本应用:java.util.regex

//分割
Pattern p=Pattern.compile("[,\\s]+");
String[] result=p.split("one,two,three four,five");
//匹配
boolean ok=Pattern.matches(patternString,String a);
Pattern pattern=;
String text=;
Matcher matcher=pattern.matcher(text);
StringBuffer buffer;
//对每个匹配到单元
while(matcher.find()){//匹配单元的整个buffer.append(matcher.group());//匹配单元的第二对括号buffer.append(matcher.group(2));
}

2.3举个例子:网络爬虫

输入流:
正则:
容器:
线程:

3图形界面

3.1基本知识

界面:java.awt;javax.swing
组件:容器和非容器
容器:顶层容器和非顶层容器

3.2实现界面三部曲:Eclipse-new-Other-windowsbuilder。。

创建组件

public class myjframe extends JFrame{JLabel lb1;public myjframe(){super("Test JFrame");//new组件lb1=new JLabel("hello swing");//添加getContentPane().add(lb1);//设置属性setSize(300,200);//默认关闭按钮setDefaultCloseOperation(EXIT_ON_CLOSE);}main{new myjframe().setVisible(true);}
}

布局

//FlowLayout:流动式自动换行
//左对齐,并设置间距
setLayout(new FlowLayout(FlowLayout.LEFT,10,5));//BorderLayout:方框式分几个框
setLayout(new BorderLayout());
//加入时要设置NORTH SOUTH EAST WEST CENTER
add(b1,BorderLayout.NORTH);//网格式,分成相等的网格,要行数和列数
setLayout(new GridLayout(4,5));
//一般组件加入到面板中,使用面板布局
//之后面板在加入到JFrame中,使用JFrame的布局

创建事件:添加事件处理器

//new 一个ActionListener,匿名类或者lambda方式
b1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {//逻辑代码}           })
//lambda
b2.addActionListener((e)->{});
//事件的方法
e.getSource();
//各种不同的listener与Adapter
//实现Listener的不同方法
//匿名类使用最多
//一个重写-lambda

组件对象和监听器:一对多,多对一(e.getSource())
更新界面:线程里面(几乎所有情况)更新界面都要
SwingUtilities.invokeLater(()->{})

3.3举个例子:

1. 小小计算器
2. 排块游戏
3. 文本编辑器

4网络

4.1URL:java.net.URL

URL url=new URL("www.xxx.xxx");
InputStream stream=url.openStream();

4.2第三方库:httpclient

引入库:buildPath-add external archives

Requset操作

//httpclient得到网页
String str= Request.Get("xxx").execute().returnContent().asString();
//得到图片
BufferedImage img=ImageIO.read(new URL(imageURL));
ImageIO.write(img,"gif",new File("d:\\aaa.gif"));

举个例子:获取建议词

4.3实现底层网络通信Socket,ServerSocket

  1. 客户端和服务端:
  2. 举个例子:多线程聊天室

5多媒体

5.1绘图

  1. Graphics 及Graphics2D
  2. 画图片

5.2音视频

  1. 音乐播放器
  2. 视频播放器

6数据库

6.1基础知识:数据库管理系统

  1. 共享性独立性完整性冗余数据少
  2. 数据定义、操纵、完整、安全、并发
  3. 关系型数据库:表的形式
  4. SQL语句:字符串用”,表名字段名用[]括起来,结尾不用;

    select * from [table] where .. group by|order by
    insert into [table] (field,..) values(content,..)
    update [table] set field=...where ...
    delete from [table] where ...
    CREATE TABLE [tablename] (field1,.2,.3,..)
    DROP TABLE [tablename]

6.2jdbc:java访问数据库的基本技术,增加相应驱动程序

//调用jdbc接口,忽略底层实现
//加载驱动程序
Class.forName("xxx.jdbc");
//得到与数据库的连接
String connString="jdbc:sqlite:d:/test.db";
//Connection 类实例,表示与数据库的连接
Connection conn=DriverManager.getConnection(connString);
//自动提交false
conn.setAutoCommit(false);
//得到一个Statement对象,表示一条数据库语句
Statement stmt=con.createStatement();
//执行非查询excuteUpdate
stmt.executeUpdate("delete from table");
//手动提交
conn.commit();
//执行查询的excuteQuery,rs是其返回结果集
ResultSet rs=stmt.executeQuery("select from ");
//访问结果集,按行遍历
while(rs.next()){//也可以用从1开始的字段顺序号int i=rs.getInt("field1");String s=rs.getString("field2");//do something
}
rs.close();
//stmt.close();
conn.close();

6.3基于数据库的应用:C/S模式

client通过sql向server发送请求

使用PreparedStatement:快速,避免sql注入攻击

String sql2="select ..where like ? and age>?";
//预先编译的查询语句
PreparedStatement pstmt=connection.prepareStatement(sql2);
//可以调整参数,%是sql任意字符
pstmt.setString(1,"%r%");
//调整参数2,从1开始编号
pstmt.setString(2,18);
//执行,sql语句已经编译好
ResultSet rs=pstmt.excuteQuery();

显示数据标:JTable

//见代码文件

举个例子:小小通讯录

    1. 界面参数转为sql语句2. 数据访问对象DAO,封装查询和数据对象

Java学习--网络,图形界面和数据库相关推荐

  1. 【JAVA】基本图形界面设计

    [JAVA]基本图形界面设计 基本知识点 JAVA中的组件包: 1:采用java.awt.*(abstract Windowing Toolkit) 2:采用javax.swing.* 特点: 前者: ...

  2. 一个编程小白的Java SE学习日志 Ⅸ—— 图形界面GUI【极客BOY-米奇】

    文章目录 前言(转载请说明作者!)4.22~4.26编写 目标 任务导引:收银系统 分析 图形界面概述 包 java.awt包 java.swing包※ 如何创建用户图形界面 创建容器 如何构造JFr ...

  3. JAVA中级之图形界面

    简单的例子 JFrame是GUI中的容器 JButton是最常见的组件- 按钮 注意:f.setVisible(true); 会对所有的组件进行渲染,所以一定要放在最后面 package gui;im ...

  4. 求java用人民币来转换美元,NJUPT JAVA语言 综合图形界面程序设计

    一. 实验目的和要求 学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法. 通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法. 实验内容: 设计和编写一个用于将人民币 ...

  5. java怎么做图形界面_java怎么做图形界面?实例分享

    学习java不仅要学会写程序,也要学会做图形界面,可是做图形界面对于一些刚学java的人员来说还是比较困难的,那么今天我们就给大家分享一下java做图形界面的方法. 首先我们来了解一下创建图形界面时常 ...

  6. Java实验二 图形界面设计

    学院 计算机科学与教育软件学院 年级.专业.班 网络16* 姓名 卟咚君 学号 1606100*** 实验课程名称 Java语言实验 成绩 实验项目名称 图形界面设计 指导老师 ** 一.实验目的 • ...

  7. java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI

    欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...

  8. java转成图形界面_【转】java图形界面设计(AWT)

    [转自]http://blog.sina.com.cn/s/blog_616e189f0100ne1t.html 1.       基本的java Frame操作. Java的图形界面的类主要包括AW ...

  9. java怎么开发图形界面_Java Swing 图形界面开发简介

    1. Swing简介 Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分. Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口.标签.按钮.文本框等 ...

最新文章

  1. 经典算法问题 - 最大连续子数列和
  2. webuploader结合php实现图片上传到本地和保存数据库
  3. IDEA把Java Web导出为war文件
  4. 工业领域产品经理的尴尬处境
  5. leetcode338 比特位计数
  6. C语言程序设计基础练习题
  7. 互联网域名解析系统DNS的工作原理及相关服务配置
  8. Python九九乘法表(作业)
  9. 如何在EDI系统中查询文件?
  10. 华为荣耀黑科技,打造震撼AI智能机
  11. 宋维刚老师词霸天下38000词汇思维导图
  12. 移动机器人定位方法概述
  13. 室内定位的电子地图编辑工具
  14. View UI (iview)表格合并单元格(行/列合并)
  15. html文件右键没有打开方式,Win7右键菜单中的”打开方式“不见了的解决方法
  16. 常常反思,让你变成更好的自己
  17. win10右键 发送到 选项消失解决办法
  18. 如何将EndNote中的参考文献插入到word中
  19. SpringMVC的在线人数统计监听器
  20. 洛谷 P1309 瑞士轮 归并

热门文章

  1. 前端逻辑练习题+学习记录 不定期更新
  2. P1455 搭配购买
  3. 收购Five9被称为“天作之合”,Zoom能否靠买买买换来高增长?
  4. 平面点云面积计算的两种方式
  5. BSC新晋蓝筹领导者:Euler.Tools实现了不起的数据可视化工具平台
  6. 笨重的多用开源生物识别腕带 LEWE
  7. Ubuntu18.04下双网卡内外网设置
  8. Automatic extrinsic calibration between a camera and a 3D Lidar using 3D point and plane corresponde
  9. java:常见的日期转型,“Tue Oct 18 00:00:00 CST 2022“
  10. 白月黑羽教python之selenium:课后练习作业二