IDEA的使用 3.1 新建Project - Class 选择"New Project": 指名工程名、使用的JDK版本等信息。如下所示: 接着创建Java类: 3.2 编写代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hel
xpath 实战 站长素材图片抓取并下载 思路: (1) 请求对象定制 (2)获取网页的源码 (3)下载 获取地址 url =‘https://sc.chinaz.com/tupian/rentiyishu.html’ #第一页https://sc.chinaz.com/tupian/rentiyishu.html #第二页https://sc.chinaz.com/tupian
步骤: 首先找到城市的接口通过F12打开检查点击北京即可得到爬取数据的接口 打开url发现显示的是jsonp121({"returnCode":"0","returnValue":{}}); 原因: 淘票票的请求头给了我们数据限制 复制表头参数 重要的一般是'cookie','referer','user-agent' 获取城
Session 会话 什么是 Session 会话? 1、Session 就一个接口(HttpSession)。 2、Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。 3、每个客户端都有自己的一个 Session 会话。 4、Session 会话中,我们经常用来保存用户登录之后的信息。 如何创建 Session 和获取(id 号,是否为新) 如何创建和获取 Sessio
Cookie 值的修改方案一: 1、先创建一个要修改的同名(指的就是 key)的 Cookie 对象 2、在构造器,同时赋于新的 Cookie 值。 3、调用 response.addCookie( Cookie ); Cookie cookie = new Cookie("key1","newValue1"); resp.addCookie(cookie
1、Cookie 饼干 什么是 Cookie? 1、Cookie 翻译过来是饼干的意思。 2、Cookie 是服务器通知客户端保存键值对的一种技术。 3、客户端有了 Cookie 后,每次请求都发送给服务器。 4、每个 Cookie 的大小不能超过 4kb 如何创建 Cookie? Servlet 程序中的代码: protected void createCookie(HttpServletRe
什么是Listener 监听器? 1、Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是:Servlet 程序、Filter 过滤器、Listener监听器。 2、Listener 它是 JavaEE 的规范,就是接口 3、监听器的作用是,监听某种事物的变化。然后通过回调函数,反馈给客户(程序)去做一些相应的处理。 ServletContextListe
jsp技术 1.1什么是 jsp?主要作用是什么? jsp 的全换是 java server pages。Java 的服务器页面。 jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。 因为 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。 1、如何创建 jsp 的页面? 2、jsp 如何访问: jsp 页面和 html 页面一样
HTTP 协议 什么是 HTTP 协议? 什么是协议? 协议是指双方,或多方,相互约定好,大家都需要遵守的规则,叫协议。 所谓 HTTP 协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫HTTP 协议。HTTP 协议中的数据又叫报文。 请求的 HTTP 协议格式 客户端给服务器发送数据叫请求。 服务器给客户端回传数据叫响应。 请求又分为 GET 请求,和 POST 请求两种
Servlet技术 什么是servlet? 1.Servlet 是 JavaEE 规范之一。规范就是接口 2.Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。 3.Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。 如何实现servlet程序 1.编写
枚举类 1.什么是枚举类 枚举类就是 对象个数有限且确定的类。 比如:季节类,一共就四个对象 : 春,夏,秋,冬。 对象个数有限,可以一一列举出来; 对象一旦被定义,不可进行修改。 当需要定义一组常量时,强力推使用枚举类 若枚举只有一个对象, 则可以作为一种单例模式的实现方 式。 枚举类的属性 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰 枚举类的使用
Math类 java.lang.Math提供了一系列静态方法用于科学计算。其方法的参数和返回 值类型一般为double型。 abs 绝对值 acos,asin,atan,cos,sin,tan 三角函数 sqrt 平方根 pow(double a,doble b) a的b次幂 log 自然对数 exp e为底指数 max(double a,double b) min(double a,double
System类 System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。 该类位于java.lang包 由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用。 成员变量 System类内部包含in、out和err三个成员变量,分别代表标准输入流 (键盘输入),标准输出流(显示
Java比较器 背景: 在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间 的比较问题。Java实现对象排序的方式有两种:自然排序:java.lang.Comparable 定制排序:java.util.Comparator 方式一:自然排序:java.lang.Comparable Comparable接口强行对实现它的每个类的对象进行整体排序。这种排序被称 为类的自然排序。 实
JDK8之前日期时间API java.lang.System类 System类提供的public static long currentTimeMillis()用来返回当前时 间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。 java.util.Date类 表示特定的瞬间,精确到毫秒 构造器 Date():使用无参构造器创建的对象可以获取本地当前时间。 Date(long
StringBuffer类 java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符 串内容进行增删,此时不会产生新的对象。 作为参数传递时,方法内部可以改变值 很多方法与String相同。 StringBuffer类不同于String,其对象必须使用构造器生成。有三个构造器: StringBuffer():初始容量为16的字符串缓冲区 StringBu
String常用方法 int length():返回字符串的长度: return value.length char charAt(int index): 返回某索引处的字符return value[index] boolean isEmpty():判断是否是空字符串:return value.length == 0 String toLowerCase():使用默认语言环境,将 String
字符串相关的类 String的特性 String类:代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作 为此类的实例实现。 String是一个final类,代表不可变的字符序列。 字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。 String对象的字符内容是存储在一个字符数组value[]中的。 源码 public final class
线程的通信 wait() 与 notify() 和 notifyAll() wait():令当前线程挂起并放弃CPU、同步资源并等待,使别的线程可访问并修改共享资源,而当 前线程排队等候其他线程调用notify()或notifyAll()方法唤醒,唤醒后等待重新获得对监视器的所有 权后才能继续执行。 notify():唤醒正在排队等待同步资源的线程中优先级最高者结束等待 notifyAll ()
线程的同步 举个例子模拟火车站售票程序,开启三个窗口售票。 public class test1 { public static void main(String[] args) { Ticket t = new Ticket(); Thread t1 = new Thread(t); Thread t2 = new Thread(t);
线程的生命周期 JDK中用Thread.State类定义了线程的几种状态 要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类 及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五 种状态: 新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建 状态 就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片
Thread类的方法 static void yield():线程让步 暂停当前正在执行的线程,把执行机会让给优先级相同或更高的线程 若队列中没有同优先级的线程,忽略此方法 join() :当某个程序执行流中调用其他线程的 join() 方法时,调用线程将 被阻塞,直到 join() 方法加入的 join 线程执行完为止 static void sleep(long millis)
线程的创建和使用 Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread 类来体现 Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常 把run()方法的主体称为线程体 通过该Thread对象的start()方法来启动这个线程,而非直接调用run() Thread类 构造器 Thread():创建新的Thread对象
基本概念:程序、进程、线程 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一 段静态的代码,静态对象。 进程(process)是程序的一次执行过程,或是正在运行的一个程序。是一个动态 的过程:有它自身的产生、存在和消亡的过程。——生命周期 程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 线程(thread
矩阵乘法和逆 矩阵乘法 有m×n矩阵A和n×p矩阵B(A的总列数必须与B的总行数相等),两矩阵相乘有AB=C,C是一个m×p矩阵,对于C矩阵中的第i行第j列元素cij,有: 其中aik是A矩阵的第i行第k列元素,bkj是B矩阵的第k行第j列元素。 可以看出cij其实是A矩阵第i行点乘B矩阵第j列 矩阵的逆 首先,并不是所有的方阵都有逆;而如果逆存在,则有A−1 A = i = A A−1 对于
消元矩阵 即通过矩阵的乘法来进行消元。 举个例子将下面的矩阵进行消元 我们的目标是将它消元达到下面的效果 首先我们必须要知道一个矩阵乘单位矩阵不变。 我们只需要在单位矩阵上进行变化这个消元矩阵我们记作E21即将第二行第一个元素变为零。 接下来就是求E32消元矩阵了,即将第三行第二个元素变为零 E32(E21A)=U 也就是说如果我们想从A矩阵直接得到U矩阵的话,只需要(E32E21)A即
异常处理机制二:throws 声明抛出异常是Java中处理异常的第二种方式 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这 种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理, 而由该方法的调用者负责处理。 在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可 以是方法中产生的异常类型,也可以是它的父类。 举例
常见异常 在编写程序时,经常要在可能出现错误的地方加上检测的代码, 如进行x/y运算时,要检测分母为0,数据为空,输入的不是数据 而是字符等。过多的if-else分支会导致程序的代码加长、臃肿, 可读性差。因此采用异常处理机制。 Java采用的异常处理机制,是将异常处理的程序代码集中在一起, 与正常的程序代码分开,使得程序简洁、优雅,并易于维护。 异常的处理方式包括两种 方式一:try-catc
矩阵消元 初中我们就学过解方程组,我们的基本思路就是消元、回代。对于矩阵也是一样的思路消元和回代。 举个例子 对应的矩阵形式:Ax=b 第一步我们需要消去第二个方程中的x项, 第二步我们需要消去第三个方程的y项, 如此就消元就完成了,你可能想问任何矩阵都可以消元吗?当然消元是有条件的条件是主元必须不为零,上述矩阵画下划线的就是主元。 如果主元为零解决方式就是交换行位置,使主元不为零
异常概述与异常体系结构 为什么需要异常举个例子:比如你写了一个程序代码运行后发现报错了,但是你不想让用户看到错误,你就可以通过异常反应到界面上(网络连接不成功请检查网络或者服务器正在维修请稍等) 异常:在Java语言中,将程序执行中发生的不正常情况称为“异常” 。 (开发过程中的语法错误和逻辑错误不是异常) Java程序在执行过程中所发生的异常事件可分为两类: Error:Java虚拟机无法解决
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号