Java复习
每日小新
醉后不知天在水,满船清梦压星河。
展开
-
Java实现简单爬虫
Java实现简单爬虫????超级简单的爬虫,直接引入jsoup依赖,即可编写获取指定网页的信息,很简单的一个爬虫。(一个小案例)//一个小案例仅供参考public class Reptile { public static void main(String[] args) throws IOException { //指定爬取的网页 String url="https://pic.netbian.com/4kdongman/"; //通过J原创 2022-01-03 18:33:03 · 404 阅读 · 2 评论 -
FreeMarker模板语言
????FreeMarker模板语言三个概念:①.是一个模板引擎②.支持html标签和Jsp标签库③.将业务与视图分离1.FreeMarker配置web.xml⭐一定记得引入依赖和配置web.xml<web-app> <!-- FreeMarker 的Servlet配置 --> <servlet> <servlet-name>freemarker</servlet-name> <servlet-cla原创 2021-10-09 14:29:48 · 632 阅读 · 2 评论 -
过滤器和监听器
一、过滤器Filter⭐作用:编码过滤和权限控制⭐实现方式:继承类HttpServlet 或实现接口Filter⭐配置方式:通过注解或web.xml中进行配置⭐注意:web.xml中配置和注解配置里不要加“/"1、编码过滤案例演示:EncodingFilter.java过滤器文件:》》》//@WebServlet("/*")错误写法@WebFilter(value = "*")//*代表所有public class EncodingFilter implements Filter {原创 2021-10-08 20:41:09 · 266 阅读 · 4 评论 -
Maven配置(IDEA配置)
目录Maven配置IDEA配置配置Tomcat聚合开发1、Maven配置????、下载maven官方:http://maven.apache.org/download.html????、解压即用,直接解压到指定目录????、配置环境变量跟Java一样主要配置M_HOME环境变量,在配置到path中记得加\bin????、配置settings.xml文件config文件内配置本地仓库地址(本地仓库随便建一个文件夹,目录要用/分隔)<loc原创 2021-09-27 22:13:22 · 9696 阅读 · 4 评论 -
Java之XML小练习
Java之XMLpublic class Xml02 { public static void main(String[] args) throws IOException { String path="D:\\Java\\Project\\Study\\src\\com\\week05\\day02\\Demo01.xml"; creat(creatDocument(),path);//创建xml文件 creat(change(creatDocum原创 2021-09-15 15:26:54 · 138 阅读 · 0 评论 -
Java之反射注解小案例
????反射注解小案例案例:主要是对反射和注解进行练习水果店进水果, 水果清单案例,通过自定义的注解给苹果,香蕉标记默认进货数量值,再通过反射获取注解的value值,将值赋值给水果的进货数量。自定义一个注解mylist@Target(ElementType.FIELD)//注释字段@Retention(RetentionPolicy.RUNTIME)//作用于运行时@interface mylist{ int value() default 10;//默认值10}定义原创 2021-09-13 20:12:46 · 213 阅读 · 0 评论 -
Java之网络编程
????Java之网络编程1、Java.net包下InetAddress此类表示Internet协议(IP)地址。getLocalHost():获取主机名+地址getByName():通过域名获取域名和地址getHostName():获取主机名getHostAddress():获取地址public class Url07 { public static void main(String[] args) throws UnknownHostException { Sy原创 2021-09-11 20:47:22 · 222 阅读 · 0 评论 -
Thread之线程同步锁Synchrosized
????线程同步锁Synchrosized通过案例:三人买票,保证不会同时访问一张票,导致买重票。- 同步锁:同步方法:成员方法 同步代码块:this|类名.class|资源通过这四种方法实现……1、普通编写(不使用同步锁) 案例:使用线程实现张三,李四,王五网上一起购买100张票public class Synchrosized01 implements Runnable{ //定义一百张票 int stack=100;原创 2021-09-10 22:35:26 · 239 阅读 · 0 评论 -
Java线程实现龟兔赛跑(静态代理)
????1、龟兔赛跑比赛规则:模拟龟兔赛跑 兔子每跑十步休息10毫秒,乌龟正常跑,只要有参赛者中有一个跑了100步就结束。思路创建一个线程,实现两者的跑步,通过线程的名字区分实现两者的线程实现public class Thread04 implements Runnable { //定义一个变量判断比赛情况 String gameOver=null; @Override public void run() { for ( int step = 1;原创 2021-09-09 22:18:52 · 693 阅读 · 0 评论 -
Java之Stream流
????Stream流1. Stream中间操作:过滤,去重,切片等map:参数接受方法函数实现,应用给当前stream的操作的每一个元素,每个元素作用于参数函数之后会返回一个新结果每个参数做函数形参,映射出新结果可以是流,也可以是某个其他类型。flatMap:与map很像,流操作的每一个数据应用参数函数,映射一个新的结果,要求这个结果必须是stream流代码实现:public class Stream01 { public static void main(String[] a原创 2021-09-09 19:15:34 · 2237 阅读 · 2 评论 -
手写实现简单栈(练习题)
一、手写实现简单栈push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。 示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack mi原创 2021-09-08 22:30:36 · 383 阅读 · 0 评论 -
Java之Lambda表达式
????Lambda表达式Lambda表达式练习题题目一题目二题目三JDK提供的四大函数接口消费型:Consumer<T> ----------------void accept(T t)有参数无返回值函数型:Function<T,R>-----------------R apply(T t)有一个参数,一个返回值段言型:Predicate<T>-------------------boolean test(T t)一个参数返回一个布尔型供给型原创 2021-09-07 20:44:25 · 1137 阅读 · 1 评论 -
手写单链表MyLink
????手写单链表MyLink自己编写一个MyLink容器实现简单的添加和获取元素个数方法实现容器内容的打印1、定义一个自定义存储类定义一个头节点Node类型的存放变量定义一个size变量统计元素的个数定义add()方法添加元素获取size()方法,容器获取长度重写toString()方法打印容器元素内容class MyLink{ //定义头节点 private Node header; public int size() { retu原创 2021-09-05 17:53:05 · 175 阅读 · 0 评论 -
一道算法题04
????一道算法题04题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。(本题中,我们将空字符串定义为有效的回文串)示例 1:输入: “A man, a plan, a canal: Panama”输出:true解释:“amanaplanacanalpanama” 是回文串示例 2:输入: "race a car"输出:false解释:“raceacar” 不是回文串题目来源:力扣(LeetCode)链接:https://leetcode-cn原创 2021-09-05 16:17:53 · 314 阅读 · 2 评论 -
一道算法题03
一道算法题题目:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water解法一:暴力解法直接通过双循环将全部可能组成的面积算出来 //暴力解法 priva原创 2021-09-03 20:28:17 · 191 阅读 · 0 评论 -
IO流实现文件夹的拷贝(ArrayList底层实现)
????使用IO流编写文件夹拷贝功能使用到字节流FileInputStream、FileOutputStream、BufferedFileInputStream/BufferedFileOutputStream,以及常用方法1、首先通过用户输入要拷贝文件夹目录file01是要拷贝的文件夹路径file02是要拷贝目标目录路径dir():方法用于用户对路径的输入处理//main方法 public static void main(String[] args) throws IOExcep原创 2021-09-03 13:29:44 · 364 阅读 · 1 评论 -
一道算法题02
????一道算法题方法一双循环方法二HashMap题目:给一个数组nums和一个整数目标值target,请你在该数组中找出,和为目标值的那两个整数,并返回他的数组下标,你可以假设每种输入只会对应一个答案,但是,数组中同一个元素在答案里不能重复出现2<=nums.length<=103-109<=nums[i]<=109-109<=target<=109只会存在一个答案解法一:暴力解法双循环(效率最低)释:直接双重循环用一个数跟后面的每一个数进行原创 2021-09-01 21:10:09 · 160 阅读 · 0 评论 -
常用类方法编程练习(String类型的比较)
????常用类编程练习A模拟用户登录B字符串遍历C统计字符串中大写,小写及数字字符的个数D把字符串的首字母转成大写,其他小写F字符串反转G统计大串中小串出现的次数H 判断一个字符串是否对称I 不使用系统功能实现字符串内容翻转关于字符串的赋值方式1、模拟用户登录 //A模拟用户登录实现方法 private static void dengLu(String userName, String passWord) { System.out.println("输原创 2021-09-01 17:31:14 · 350 阅读 · 0 评论 -
一题算法题(常用类的总结)
????一题算法题题目:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序方法一:暴力解法:直接创建一个数组接受对象,循环原数组,零元素直接跳过,其余直接赋给新的数组即可假设原数组:int[] num={0,1,0,3,12}public class Test01 { public static void main(String[] args) { Test01 t=new Test01(); t.method(t.n原创 2021-08-31 21:19:18 · 144 阅读 · 0 评论 -
Java之异常练习
异常练习题①、 从键盘输入一个整形数n,如果输入正确的话,输出10-n后的值,如果输入错误的话输出“not int”,如果输入的不是整数,则抛出异常类:InputMismatchException。import java.util.InputMismatchException;import java.util.Scanner;/** 1.从键盘输入一个整形数n,如果输入正确的话,输出10-n后的值,* 如果输入错误的话输出“not int”,如果输入的不是整数,* 则抛出异常类:Input原创 2021-08-31 11:15:40 · 1364 阅读 · 0 评论 -
Java之异常Throwable
异常Throwable自定义异常案例:package com.week03.Day01;/**总结:异常:Throwable* / \* Error Exception* / \* CheckException RuntimeException* 编译时异常:1、直接抛出异常,由调用者处理异常* 2、直接catch捕获异常,处理掉异常** 运行时异常:1原创 2021-08-30 19:22:06 · 515 阅读 · 0 评论 -
编写一个ArraryList类(自动改变大小的数组)
????自己编写一个ArraryList类添加功能在指定位置添加功能删除指定位置功能自动扩容自动缩容打印数组内容功能测试补充:单例模式(内部类)1、创建一个Arrays类定义数组、长度、计数、构造器初始化public class Arrays { //数组默认长度 private static int length; //定义一个数组 private Object[] arrays; //定义一个计算数组的长度size priv原创 2021-08-29 21:11:33 · 282 阅读 · 0 评论 -
接口与内部类
目录1、什么是接口2、面向接口编程3、内部类????什么是接口?接口是个标准,比抽象类还抽象的类,特点如下:在接口内定义的变量默认public static final,都是常量,必须在定义就赋值在接口中默认方法public abstract 抽象方法(抽象方法无方法体!!!!)在接口中可以定义静态的方法JDK1.8之后支持default void fun(){}修饰方法无构造器,所以无法实例化对象????面向接口编程一个类可以继承多个接口,需要重写接口内的全部方法接口可以继原创 2021-08-28 20:41:38 · 154 阅读 · 0 评论 -
多态案例即二分查找
多态的特点:必须发生父子关系重写方法父类的变量指向子类的对象抽象一定多态????多态案例一、面馆Test类、People类、Cn 类、En类Cn类和En类分别继承People类Test类中含一个eatPlace()方法主要通过父类变量指向子类的对象,传入父类变量,获取不同Cn、En两个子类的eat()方法,多态对eat()方法的重写,并通过父类的指引指向两个子类的eat()方法public class Test { public static void main(Stri原创 2021-08-28 19:43:42 · 202 阅读 · 0 评论 -
猴子分桃问题
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?...原创 2021-08-26 08:32:08 · 597 阅读 · 0 评论 -
关于面向对象和面向过程的简单理解
关于面向对象和面向过程的理解1、什么是面向过程?大概意思:就是做一件事情,走大到小,从里到外,每个步骤的细节(自上向下,逐步细化)。????~以学生干饭为例:(直接上图)2、什么是面向对象大概意思:就是在过程中出现的人或者物,都可以是一个独立的对象,他们的动作和特征就是对象的属性和方法。????~以学生干饭为例:(直接上图)3、面向过程与面向对象的优缺点① 面向过程:优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。缺点:没有面向对象易维护、易复用、易扩展原创 2021-08-23 21:11:02 · 5892 阅读 · 1 评论 -
关于倒序输出的三种方法
????关于倒序输出的三种方法方法一:利用求余整除的方式一个一个数字的截取,想法普遍简单//方法一 public static void method02(int num){ int s=0; while(num!=0){ int x=num%10; s=s*10; s+=x; n原创 2021-08-23 20:19:50 · 10972 阅读 · 0 评论 -
Java中增强for循环foreach
关于Java中foreach用法概述:增强的for循环是在传统的for循环中增加的强大的迭代功能的循环,是在jdk1.5之后提出来的,主要是为了提高程序员的开发工作效率。//格式:for(元素类型 ele : 数组名/Iterable 实例){ }1、foreach遍历数组public class Foreach01{ public static void main(String[] args){ //创建一个String数组原创 2021-08-21 15:07:05 · 419 阅读 · 0 评论 -
关于Java打印空心菱形的三种方式(斐波那契数列)
????关于空心菱形的三种方式 * * * * * * * * * * * * * * * *????方法一(普遍思维,代码冗余)public class Demo02{ public static void main(String[] args){ //先打印上部分三角形 for(int i原创 2021-08-20 18:54:32 · 2518 阅读 · 1 评论 -
Java基础练习之猜拳游戏
Java之猜拳小游戏????????~游戏内容简单,使用了java中的switch、if、选择语句,调用了Scanner用户输入接受语句、和Random()随机数的产生方法!(无图形化界面,简单的一个知识点应用练习)游戏设计???? 首先由用户输入出拳(石头、剪刀、布),同时初始积分为1,电脑出拳则是随机(石头,剪刀,布),玩家获胜加一分,电脑获胜加一分,平局不加不减,继续游戏输入Y/N 进入下一轮或者退出游戏,当玩家积分为零时,则会自动退退出游戏,并提示充值代码内容献上package com原创 2021-08-19 20:07:11 · 672 阅读 · 1 评论 -
Java复习①☕
Java基础☕目录:1、Java概述2、Java环境配置3、Java注释符4、编码字符集5、标识符6、关键字7、变量8、数据类型和转义字符9、常量10、数据转换11、运算符1、java概述????1.1、Java的特点封装、多态、继承1.2、java跨平台2、java环境配置????2.1、主要配置主要添加和配置JAVA_HOME和PATH系统变量2.2、cmd窗口javac -version:能够打印出版本号(相当的于Java的快捷方式)2.3、cmd原创 2021-08-18 19:19:45 · 397 阅读 · 0 评论