Java
来杯茶的ni
因学习而年轻,因年轻而快乐
展开
-
Java注解2--解析注解
一、概念通过反射获取类、函数或成员上的运动时注解信息,从而实现动态控制程序运行的逻辑。二、操作代码1、准备注解2、编写解析代码public class ParseAnn{ public static void main(String[] args){ //1、使用类加载器加载类 try{ Class c=Class.forName("com.ann.test.Child"); //2、找到类上面原创 2020-08-12 11:09:44 · 169 阅读 · 0 评论 -
Java注解学习1
一、概念Java提供了一种源程序中的元素关联任何信息和任何数据的途径和方法。二、JDK自带注解1、@Override(表示方法覆盖父类的方法)2、@Deprecated(表示该方法过期了)3、@SuppressWarning(表示忽略警告)三、注解的分类按运行机制分源码注解--注解只在源码中存在,编译成.class文件就不存在了 编译时注解--注解在源码和.class文件中都存在 运行时注解--在运行阶段还起作用,甚至影响运行逻辑的注解按照来源分来自JDK的注解原创 2020-08-12 10:50:31 · 159 阅读 · 0 评论 -
Java基础复习超详细笔记--11(1)IO流
数据流字节流:可以读取任意类型数据 抽象基类:InputStream、OutputStream字符流:只可以读取文本数据 抽象基类:Reader、Writer...原创 2019-11-10 19:22:07 · 133 阅读 · 0 评论 -
Java基础复习超详细笔记--10枚举类型
//编写枚举类型public enum 类名{ 内容0,内容1,内容2....}//创建枚举变量类名 变量名=类名.内容;//获得枚举变量对应int值变量名.ordinal();原创 2019-11-10 16:17:42 · 129 阅读 · 0 评论 -
Java基础复习超详细笔记--8线程
进程:一个程序就是一个进程进程包括线程,以游戏为例,当我们需要多个任务同时进行的时候,就可以使用多线程。方法一(继承Thread类):Class MyTread extends Tread{ //重写run方法 public void run(){ }}启动:MyThread thread=new MyThread();thread.st...原创 2019-11-10 14:51:08 · 993 阅读 · 0 评论 -
Java基础复习超详细笔记--3eclipse的操作
重置布局:Windows->perspective->Rest Perspective项目重命名:1.按f22.右键->refaetor自动提示:Alt+/格式化:右键->source->format注释:单行:Ctrl+/(解除一样)多行:Ctrl+shift+/ 解除:Ctrl+shift+\删除:Ctrl+d自动引入包或删除无用包:Ctrl+shi...原创 2019-11-04 08:12:05 · 136 阅读 · 0 评论 -
Java算法--连续子数组的最大和
题目:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...原创 2019-10-18 12:36:57 · 214 阅读 · 0 评论 -
Java算法--反转链表
题目:输入一个链表,反转链表后,输出新链表的表头。解法:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListN...原创 2019-10-18 01:46:17 · 146 阅读 · 0 评论 -
Servlet超详细笔记3--ServletContext对象
一、什么是ServletContext对象ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象内部封装是该web应用的信息,ServletContext对象一个web应用只有一个问题:一个web应用有几个servlet对象?----多个二、ServletContext对象的生命周期创建:该web应用被加载(服务器启动或发布web应用...原创 2019-10-13 01:28:27 · 158 阅读 · 0 评论 -
Servlet超详细笔记2--创建与配置
一、Servlet的创建创建Servlet的常用方法有3种,即直接实现Servlet接口、继承GenericServlet类与继承HTTPServlet类。1.直接实现Servlet接口任何一个Servlet类都必须实现javax.servlet.Servlet接口。Servlet接口定义类5个方法:init()service()destroy()getServle...原创 2019-10-12 08:54:01 · 272 阅读 · 0 评论 -
Servlet超详细笔记1--介绍与生命周期
一、Servlet简介Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API 动态的向客户端输出内容。其主要功能包括读取客户端发送到服务端的数据、从服务端发送显示器数据到客户端。Servlet的主要优点:1.易开发2.可移植3.可节省内存与CPU资源...原创 2019-10-12 01:14:24 · 171 阅读 · 0 评论 -
Java算法--爬楼梯
题目:假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1...原创 2019-09-13 19:23:14 · 1200 阅读 · 0 评论 -
Java算法--最小路径和
题目:给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解法:(二维动态规划)class Solution { public i...原创 2019-09-14 17:28:22 · 288 阅读 · 0 评论 -
Java算法--两数相加
题目:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...原创 2019-09-03 17:23:56 · 423 阅读 · 0 评论 -
Java算法--合并两个有序链表
题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解答:方法1:递归class Solution { public ListNode mergeTwoLists(ListNode...原创 2019-09-06 01:08:28 · 211 阅读 · 0 评论 -
Java算法--加一
题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...原创 2019-09-06 08:51:10 · 390 阅读 · 0 评论 -
Java算法--合并两个有序数组
题目:给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums...原创 2019-09-06 00:43:01 · 433 阅读 · 0 评论 -
Java算法--搜索插入位置
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0解...原创 2019-09-07 13:17:22 · 121 阅读 · 0 评论 -
Java算法--最后一块石头的重量
题目:有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为x 和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下...原创 2019-09-08 11:07:09 · 284 阅读 · 0 评论 -
Java算法--斐波那契数
题目:斐波那契数,通常用F(n) 表示,形成的序列称为斐波那契数列。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定N,计算F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 ...原创 2019-09-08 21:22:34 · 160 阅读 · 0 评论 -
Java算法--买卖股票的最佳时机
题目:给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 ...原创 2019-09-09 13:10:55 · 700 阅读 · 0 评论 -
Java算法--不同路径
题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和 n 的值均不超过 100。示例1:输入: m = 3, n = 2输出: 3解释:...原创 2019-09-14 19:15:52 · 214 阅读 · 0 评论 -
Java算法--不同路径 II
题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m和 n 的值均不超过 100。示例1:输入:[[0,0...原创 2019-09-15 15:35:02 · 180 阅读 · 0 评论 -
MAVEN超详细笔记2--eclipse配置与项目搭建
一、Maven在eclipse的配置1、如图选择3.3.9版本的maven软件2、修改默认的本地仓库地址二、项目构建实战1.新建maven项目2.跳过骨架,如果不跳过骨架选择创建出的项目目录是不全的3.填写坐标4.创建工程(目录介绍)5.处理红色叉号手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件...原创 2019-10-10 15:05:10 · 147 阅读 · 0 评论 -
MAVEN超详细笔记1--介绍与配置
一、什么是maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的二、Maven好处普通的传统项目Maven项目分析:maven项目为什么这么小?没有jar。需要jar吗?肯定需要。没有存在于maven项目里面,jar存在于哪?存在本地仓库三、Maven的安装配置1.下载安装下载地...原创 2019-10-10 00:50:44 · 139 阅读 · 0 评论 -
Mybatis超详细笔记4--SqlMapConfig.xml配置文件
一、配置内容SqlMapConfig.xml中配置的内容和顺序如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)environment(环境子属性对象)transact...原创 2019-10-07 09:22:39 · 133 阅读 · 0 评论 -
Mybatis超详细笔记3--动态代理开发
一、开发规范Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。Mapper接口开发需要遵循以下规范:Mapper.xml文件中的namespace与mapper接口的类路径相同。 Mapper接口方法名和Mapper.xml中定义的每个statement的i...原创 2019-10-07 00:57:07 · 175 阅读 · 0 评论 -
Mybatis超详细笔记2--好坏
一、Mybatis解决jdbc编程的问题1.数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题。解决:在SqlMapConfig.xml中配置数据连接池,使用连接池管理数据库链接。2.Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与...原创 2019-10-06 20:38:26 · 163 阅读 · 0 评论 -
Mybatis超详细笔记1--基础
一、Mybatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如...原创 2019-10-06 19:01:50 · 160 阅读 · 0 评论 -
JSP超详细笔记2
一、Jsp动作标记Jsp的动作标记又称为动作元素,共有7个,即param动作、include动作、forward动作、plugin动作、useBean动作、getProperty动作、getProperty动作。下面就讲讲常用的动作1.include动作include动作标记用于告知jsp页面动态加载一个文件,即jsp页面运行时才将文件引入。格式:<jsp:include...原创 2019-10-04 02:37:00 · 267 阅读 · 0 评论 -
JSP超详细笔记1
一、简介JSP(java server pages)是由Sun公司建立的一种动态网页技术标准。JSP本质就是servlet。jsp在第一次被访问时会被Web服务器翻译成servlet文件,然后被装载和实例化。此后,每次对此jsp的请求均将通过调用已经实例化的对象产生响应。因此,第一次访问特别慢,而以后就很快。二、JSP脚本一个jsp页面就是一个以.jsp为扩展名的程序文件,其组成元...原创 2019-10-04 02:34:46 · 150 阅读 · 0 评论 -
Java算法--使用最小花费爬楼梯
题目:数组的每个索引做为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从c...原创 2019-09-30 01:13:42 · 428 阅读 · 0 评论 -
Java算法--二叉树的中序遍历
题目:给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]解法:class Solution { public List<Integer> inorderTraversal(TreeNode root) { List < Inte...原创 2019-09-29 08:55:29 · 298 阅读 · 0 评论 -
JDBC操作数据库出现'??????' 解法
编译时报出错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '??????' in'field list'原因:假设SQL语句为:String sql="INSERT INTO STUDENT VALUES("+id+","+name+")";输入的 id=1,name=adf...原创 2019-09-25 02:14:21 · 400 阅读 · 0 评论 -
JDBC超级详细笔记
一、简介:JDBC(Java Data Base Connectivity)是一种用于执行SQL语句的javaAPI,由一组用java语言编写的类和接口组成。从结构上看,JDBC是Java语言访问数据库的一套接口集合。从本质上看,JDBC是调用者(开发人员)与执行者(数据库厂商)的一种协议。二、使用:1、导包创建工程后,在工程下创建lib文件夹,导入mysql-connecto...原创 2019-09-23 09:02:17 · 301 阅读 · 0 评论 -
Java算法--杨辉三角
题目:给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1],[1,4,6,4,1]]解法:class Solution { public List<List<...原创 2019-09-23 20:33:20 · 256 阅读 · 0 评论 -
Java算法--平衡二叉树
题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,...原创 2019-09-19 14:07:12 · 168 阅读 · 0 评论 -
Java算法--第 N 个泰波那契数
题目:泰波那契序列Tn定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数n,请返回第 n 个泰波那契数Tn 的值。示例 1:输入:n = 4输出:4解释:T_3 = 0 + 1 + 1 = 2T_4 = 1 + 1 + 2 = 4示例 2:输入:n = 25...原创 2019-09-18 13:36:28 · 268 阅读 · 1 评论 -
Java算法--宝石与石头
题目:给定字符串J代表石头中宝石的类型,和字符串S代表你拥有的石头。S中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J中的字母不重复,J和S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", S = "ZZ...原创 2019-09-18 13:22:23 · 209 阅读 · 0 评论 -
Java算法--柠檬水找零
题目:在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回true,否则返回 false。示例 1:输入:[5,...原创 2019-09-16 21:38:52 · 312 阅读 · 0 评论