Java中的网络编程
URL类URL对象-最基本的三部分信息:协议、地址、资源
http、ftp、file协议都是JVM支持的协议
地址必须是能连接的有效的IP地址或域名(host name)
资源可以是主机上的任何一个文件
IP: Internet Protocol
DNS: Domain Name Servers,用来把host name转换成IP地址
URL的构造方法12345678910111213// public URL(String spec) throws MalformedURLExceptiontry { url=new URL("http://yahoo.com.cn"); //使用字符串初始化一个URL对象 是http协议} catch(MalformedURLException e) { System.out.println("Bad URL:"+url); } // public URL(String protocol, String host, String file ...
图形用户界面设计
AWT组件与Swing组件概述用户界面设计
java.awt包-> Abstract Window Toolkit(抽象窗口工具包)
java.awt包中的类创建的组件 -> 重组件(heavyweight components)
当用java.awt包中的Button类创建一个按钮组件时,都有一个相应的本地组件在为它工作
即显示组件和处理组件事件,该本地组件称为它的同位体
javax.swing包
提供更加丰富、功能强大的组件 -> Swing组件,其中大部分组件是轻组件(lightweight components)
没有同位体,而是把与显示组件有关的许多工作和处理组件事件的工作交给相应的UI代表来完成。
UI代表是用Java语言编写的类,这些类被增加到Java的运行环境中,因此组件的外观不依赖平台,不仅在不同平台上的外观是相同的,而且与重组件相比有更高的性能。
Component - Container
JComponent—————- 轻组件 • JButton • JTextField • JTextArea • JTree • JTable ...
输入流和输出流
输入/输出流I/O(input/output)流输入流(input stream or input object)的指向称作“源”输出流(output stream or output object)的指向称作“目的地”程序的“源”和“目的地”可以是文件、键盘、鼠标、内存或显示器窗口
4个abstract classInputStream(字节输入流)OutputStream(字节输出流)Reader(字符输入流)Writer(字符输出流)
文件构造方法12File(String filename);File(String directoryPath, String filename);
属性1234567891011public String getName()//获取文件的名字public boolean canRead()//判断文件是否可读public boolean canWrite()//判断文件是否可被写入public boolean exits()//判断文件是否存在public long length()//获取文件的长度(单位是字节 ...
线程
线程程序是一段静态的代码,它是应用软件执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡(完成)的过程。线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索。每条线索(即每个线程)有它自身的产生、发展和消亡(完成)的过程,也是一个动态的概念。
Java程序从主类(main class,main方法所在的类)的main()方法开始执行当JVM加载代码,发现main()方法后,就会启动一个线程,称作“主线程”,该线程负责执行main()方法。在main()方法中再创建的线程,就称为主线程中的线程。
如果main()方法中创建了其他线程,那么JVM就要在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源,main()方法即使执行完最后的语句,JVM也不会结束我们的程序,JVM一直要等到主线程中的所有线程都结束之后,才结束我们的Java应用程序。
线程的生命周期Thread类或其子类创建的对象称作线程
新建
有相应的内存空间和其他资源
运行
线程必须调用start( ...
常用实用类
Date类常用时间元字符 – y, yy:2位数字年份,如14 – yyyy:4位数字年份,如2014 – M, MM:2位数字月份,如08 – MMM:汉字月份,如八月 – d, dd:2位数字日期,如09, 22 – a:上午或下午 – H, HH:2位数字小时(00-23) – h, hh:2位数字小时(am/pm,01-12) – m, mm:2位数字分 – s, ss:2位数字秒 – E, EE:星期
1234567891011121314151617181920212223242526import java.util.Date; import java.text.SimpleDateFormat; public class Example7_1 { public static void main(String args[]) { Date currentTime = new Date(); //获取本地当前时间 System.out.println("Current time: &qu ...
字符串和正则表达式
String类创建字符串对象
用String类的构造方法创建字符串对象String s = new String("we are students");
用一个已经创建好的字符串创建另一个字符串String s2 = new String(s);
用一个字符数组a创建一个String对象char[] a = {'b','o','y'}; String s = new String(a);
提取字符数组a中的一部分字符创建一个String对象char[] a = {'s','t','b','u','s','n'}; String s = new String(a,2,3);
常用方法123456789101112131415161718192021222324252627282930313233343536373839404142s1.length() //->int获取字符 ...
继承、接口和泛型
继承(inheritance)子类(subclass, child class, or extended class)父类(superclass, parent class, or base class) ——>自己编写的类/Java类库中的类
Java不支持多重继承,即子类只能有一个父类。
1234class 子类名 extends 父类名 { ... }
继承性同一包(package)中,子类自然地继承了父类中不是private的成员变量和方法(即:friendly, protected, public)
不在同一包(package)中,子类只能继承父类的protected, public成员变量和方法
一个类A中的protected成员变量和方法可以被它的直接子类和间接子类继承,比如B是A的子类,C是B的子类 ,D又是C的子类,那么B、C和D类都继承了A的protected成员变量和方法。but在E类中,用D类创建了一个对象d,d通过“.”运算符访问protected成员变量和protected方法,则E类和D类需在同一包中
1234 ...
类和对象
封装(Encapsulation)
继承(Inheritance)
多态(Polymorphism)
成员变量
静态变量(static variable)/ 类变量(class variable) 静态变量是和该类所创建的所有对象相关联的变量,改变其中一个对象的这个静态变量就同时改变了其它对象的这个静态变量。 静态变量可以通过某个对象访问,也可以直接通过类名访问。 注:通过类名访问静态变量是一个好的编程习惯.
实例变量(instance variable) 不同对象的实例变量互不相同,即分配了不同的内存空间 实例变量必须通过对象访问.
常量 (final variable/constant) final修饰,声明时必须要初始化。 常量的名字中的所有字母习惯用大写字母 可以通过对象访问,但不能通过类名访问
方法方法类型
实例方法(instance method) 可以调用该类中的实例方法、静态方法 可以操作实例变量、静态变量
静态方法(static method)/类方法 只能调用该类的静态方法,不能调用实例方法 只能操作静态变 ...
初识Java
背景 sun公司1995年推出的计算机高级编程语言 (2009 sum被Oracle(甲骨文)收购)
Java之父: James Gosling
应用 企业应用开发
移动应用开发(android)
服务器系统
桌面应用开发
大数据开发
游戏开发(我的世界)
特性 可移植性
技术平台 JavaSE(标准版) java技术的核心和基础
JavaEE(企业版) 大型互联网企业级解决方案(充分被市场认可)
开发环境 安装JDK(java的开发者工具包)
前置知识 javac.exe 编译工具
java.exe 执行工具
关于命令行窗口常用命令 win+R cmd
|命令|作用|
|-------|-------------|
| D: , C: ,E: |切换盘|
|dir|查看当前路径下的文件信息|
|cd (文件名)|进入单级目录|
|cd (文件夹1\文件夹2\...\文件夹n)|进入多级目录|
|cd ...
分块
POJ3468
n个数a[i],m次询问每次询问: C l r d 区间每个数+d Q l r 区间求和
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112// O((N+Q)sqrt(N))#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef double db;const int N = 1e5 + 10;const ll mod = 1e9 + 7;ll a[N], sum[N], add[N]; //原数组,区间和,增量标记int L[N] ...