
Java基础
菜鸟腾飞
一个正在努力奋斗的95后程序员 , 记录我学习成长的点滴
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
过滤器Filter实现页面跳转
当我们想对不合法或不存或不符合要求的请求进行跳转时,可已选择Filter来实现,下面是简单的例子只需要在doFilter中实现内部逻辑即可//业务逻辑HttpServletRequest request = (HttpServletRequest)servletRequest;HttpServletResponse response = (HttpServletResponse)servl...原创 2019-09-16 22:41:24 · 8567 阅读 · 0 评论 -
第一节初步了解java及相关配置
一: 人机交互 软件的出现实现了人与计算机之间的交互 图像界面 : 这种比较直观, 使用者是容易接受的, 容易上手操作的 命令行的方式:需要有一个控制台, 输入特殊指令, 让计算机完成操作, 比较麻烦, 需要记住命令二, java的三个体系分支1, JAVASE2, JAVAEE3, JAVAME三, java 的特性1, 面向对象的2, 跨平台的 -- JVM3,原创 2017-09-23 21:48:19 · 616 阅读 · 0 评论 -
第六节第二大特性继承
一回顾之前 面向对象 参数的传递: 当调用方法的时候,将实参赋值给形参的过程 基本数据类型: 参数传递的是数据的本身 引用数据类型 参数传递的是对象的引用(也叫地址)封装性:对属性的封装,为了保护属性值的安全步骤:1.用private来修饰属性2.赋值 ,取值对外提供setxxx() getxxx() 方法static关键字属性(成原创 2017-09-23 22:20:13 · 316 阅读 · 0 评论 -
第七节接口与抽象类
一.回顾之前的内容 继承:面向对象的第二大特征 描述的是两个类之间的关系:一个类作为子类,另一个类作为父类 作用:避免重复代码 扩展类的功能 两个类的继承关系: 1.子类可以访问父类的非私有的属性和方法 2.子类可以新增自己的属性方法 3.子类可以重写父类已有的方法 重写:override 子类将父类已有方法重新实现 规则: 1.原创 2017-09-23 22:21:44 · 266 阅读 · 0 评论 -
第十七节多线程及生产者消费者模式
1.线程—-多线程 进程:正在执行的程序 线程:是进程中的一条执行路径 ,一个控制单元 多线程:一个进程中有多个执行路径 java支持多线程\ 分类:主线程: 子线程:工作线程 java代码执行:main方法 JVM虚拟机创建并启动了一个线程,执行了main方法—主线程 Thread 线程类 2.线程如何创建和启动 方式一: 1.创建一个类 继承Thread类 2.重写父类方原创 2017-09-24 19:04:21 · 670 阅读 · 0 评论 -
第十四节ArrayList 和LinkedList
一,今天的内容 1.ArrayList 底层是一个数组–可变长度的数组 数据类型…变量名 可变长度的数组声明(类型确定 个数不确定) ArrayList 特点: 缺点:在增删数据时 有大量数据的移动 执行效率较低 优点:但是在查改数据时 速度很快 执行效率高 2.LinkedList–数据结构–链表结构优点:增删数据时不需要移动其他元素 执行效率相对要高 缺点:查改数据时,效率要原创 2017-09-24 18:56:31 · 639 阅读 · 0 评论 -
第十三节集合和泛型
一.回顾昨天 二.今天的内容 java 中的容器有两种就是 数组+集合 数组:1.定义 int []array =new int[10];2.类型:必须和数组的类型完全一致 3.容量:固定的 集合:1.定义:Collection接口–List 接口 Set接口 2.类型:可以存储任意类型. 3.容量:没有限制,自动扩容 集合分类: 两大类: Collection 接口:每次只原创 2017-09-24 17:12:08 · 478 阅读 · 0 评论 -
第十二节正则表达式及常用类
一.回顾 1.包装类:jdk提供的每种基本数据类型,都有与之对应的类类型,称之为包装类 装箱:从基本数据类型到包装类 拆箱:包装类到基本数据类型 jdk1.5后实现了自动的拆箱和装箱 2.String类 一串字符序列组成的字符串 String str=new String{“abc”}; String str=new String(char[],offset,原创 2017-09-24 17:05:41 · 477 阅读 · 0 评论 -
第十一节包装类及相关面试题
常用类:’ String Math System StringBuffer StringBuilder Date Calender 1,基本数据类型–四种八类 数据类型分类: 基本数据类型 引用数据类型 Person person =new Person();数组 类 2.包装类 8种基本数据类型对应的包装类 –类类型 注意事项: 1. 8种基本数据类型中有6种原创 2017-09-24 17:03:26 · 646 阅读 · 0 评论 -
第十节异常及折半查找
一.回顾 数组:java 中的容器 特点:要求必须存储同一种类型数据 存储数据必须要明确元素个数 —数组长度数组是引用类型得变量,存在堆内存中 数组介意存任意类型得数据二.本节课内容 二分查找 –前提:数组中的元素是有序的—折半查找 原理: 1.头角标 中间角标 尾角标(数组长度-1) 分别定义 2.通过循环判断 —-头角标<=尾角标>原创 2017-09-24 17:00:23 · 4709 阅读 · 0 评论 -
第九节初识数组
一, 回顾 面向对象 – 是一种编程思想 – 一切事物皆对象 1, 两大核心: 类 : 对同一类事物的抽象描述(属性: 成员变量, 功能: 成员方法) 对象: 对象是类的具体事例, 对象中有属性和功能 2, 如何创建一个对象 类名 对象名 = new 构造方法(); 3, 构造函数 – 构造方法– 构造器 功能作用: 创建一个对象, 并且初始化对象的属性值原创 2017-09-24 16:56:57 · 463 阅读 · 0 评论 -
第八节第三大特性多态
1.多态:–对象的多态性 java 特性之一 好处:提高代码重用性 前提:必须是继承关系 一个对象的多种形态 子类的对象,既可以作为父类的对象,由父类来引用; 也可以作为子类的对象,由子类来引用 子类是一个特殊的父类 父类的引用,指向子类对象,向上转型–只能访问父类属性和方法,不能访问子类新增的属性和方法 B b2=(B)a2;向下转型-强原创 2017-09-23 22:22:58 · 319 阅读 · 0 评论 -
第十八节网络编程
一网络编程 1.网络: 主机之间的数据的传输 第一点: 主机 IP地址 :用于定位主机 第二点: 程序 端口port:用于标识主机上的应用程序 第三点:规则–协议 Tcp:面向连接 打电话`确定连接成功后,必须的到回复,连接成功 三次握手 Udp:面向无连接 邮寄信件 只负责发送不管是否收到 效率快 2.java支持网络编程 基于TCP协议 客户端和服务端 Serve原创 2017-09-24 19:07:06 · 575 阅读 · 0 评论 -
第十九节http和json解析
Http协议 :超文本传输协议 Hyper Text Transfer Protocol Http协议是基于TCP协议之上的 有时TCP协议上有TLS SSL 协议,如果包含这两种协议,我们称为HTTPS协议 Http是应用层协议,由请求和响应两部组成,是一个标准的客户端服务器的模型 Http协议是无状态的协议 Http请求永远都是客户端发送请求,服务器端作出响应 Http就是访问网络的原创 2017-09-25 22:42:09 · 1838 阅读 · 0 评论 -
第二节java的运算符和分支语句
一, 上一节课的回顾1,分支 JAVASE JAVAME JAVAEE2, 两大核心机制: JVM GC3, 流程步骤 A:编写java源文件 XXX.java B:编译文件 javac XXX.java 生成字节码文件 .class C:解释执行: java XXX.java4, 注释 单行 // 多行原创 2017-09-23 21:51:09 · 741 阅读 · 0 评论 -
第四节初识面向对象及eclipse快捷键
1.eclipse 的使用 快捷键 alt+/ 快捷键手动提示 Ctrl+/ 单行注释 Ctrl + shift +o 自动导包面向对象 – 思想 思考:把大象装冰箱需要几步? 面向对象:关心的对象 个体 实物,是一种编程思想,而不是一门语言面向过程:注重操作的步骤 人类"name age sex 属性 ---特征eat() sleep() 方原创 2017-09-23 21:55:24 · 979 阅读 · 0 评论 -
java跨域
Access to XMLHttpRequest at '接口' from origin'xx.xx.cn' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.index-29339a0.js:890 文章目录一.跨域怎么产...原创 2019-09-01 14:37:40 · 480 阅读 · 0 评论 -
字符串拼接的坑null与nullnull
很多人习惯,习惯将基本类型或基本类型的包装器类通过以下形式进行隐性转换,例如,int f = 1; String ff = f+"";但是当要印象转换是个对象,那么结果会是怎么样呢? String a = null; String b = null; String c = a +""; String d = a+b; ...原创 2019-08-15 21:59:06 · 10428 阅读 · 1 评论 -
java编译与反编译命令
javac xxx.java 编译反编译javap -p xxx.class用法摘要:-help 帮助-l 输出行和变量的表-public 只输出public方法和域-protected 只输出public和protected类和成员-package 只输出包,public和protected类和成员,这是默认的-p -private 输出所有类和成员-s 输出内部类型签名-...原创 2019-08-07 14:49:37 · 429 阅读 · 0 评论 -
Java核心36-exception,error区别
一.Exception与ErrorThrow early catch late ,异常尽早抛出,捕获异常后避免’生吞’或者直接使用Exception(要更细致的异常)try catch 尽量捕获关键代码段,否则增加系统开销Java每实例化一个Exception都要保存一份栈信息快照,增加系统开销NoClassDefFoundError与ClassNOtFoundException区别:...原创 2019-06-19 23:23:00 · 199 阅读 · 0 评论 -
改善java程序的151个建议
1.善于使用内部类与静态内部类(实现进一步的封装)2.重写equals hashcode toString 方法3.对包装类转换 null判断4. equals 对空格需要通过 strim处理5.静态代码块应当先声明在赋值6.构造代码块 依赖构造方法 插入到构造方法中7,不要给随机数 因子8.接口不要实现接口不规范9.不要 写i=i++ 不然i始终是i的初始值10.工具类 ...原创 2019-04-21 18:47:15 · 639 阅读 · 0 评论 -
[java]数据类型Object转换之String
转换String类型有常见的三种方式 (String)obj ,obj.toString(),String.valueOf(obj)三种, 下面分别说说三种方式//最推荐的方式valueOf()源码 public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toStri...原创 2018-07-27 17:53:23 · 740 阅读 · 0 评论 -
[Java]Apache common工具包常用类介绍
Apache.common提供了许多常用的工具类,大大提高了我们开发的效率,下面给大家简单介绍下常用的工具类. 等多内容请看官方api文档点击进入 1.ArrayUtils数组相关工具类public class TestMain { public static void main(String[] args) { int[] nums1 = { 1, 2, 3, 4, 5, ...原创 2018-06-17 19:40:19 · 6301 阅读 · 0 评论 -
[Java]fastJson的简单使用
1.前言1.1.FastJson的介绍:JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson1.2.FastJson的特点:1.FastJson数度快,无论序列化和反序列化,都是当之无愧的fast 2.功能强大(支持普通JDK类包括...转载 2018-06-17 18:40:25 · 31213 阅读 · 2 评论 -
java实现CSV文件读写
问题场景,公司需求对图片表数据进行分析(大小,像素,长,宽),以CSV形式进行操作. 1.准备操作 Maven<!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv --> <dependency> <groupId>net.sourcef...原创 2018-06-02 15:11:52 · 5573 阅读 · 0 评论 -
[java]slf4j+log4j日志框架
配置所需maven依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.9</version> </depende原创 2018-06-04 09:58:08 · 175 阅读 · 0 评论 -
java 获取类名称
适用于非静态方法:this.getClass().getName()适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName()原创 2018-03-26 10:57:53 · 1669 阅读 · 0 评论 -
Cron表达式
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year (2)Seconds Minutes Hours DayofMonth Month DayofWeek 一、结构 corn从左...转载 2018-03-23 18:55:22 · 336 阅读 · 0 评论 -
Java实现定时任务的3种方式
JAVA实现定时任务的几种方式@(JAVA)[spring|quartz|定时器] 近期项目开发中需要动态的添加定时任务,比如在某个活动结束时,自动生成获奖名单,导出excel等,此类任务由于活动时间是动态的,不能把定时任务配置在配置文件或写死在代码中。当然也可以增加一个定时扫描的...转载 2018-03-23 18:52:45 · 1081 阅读 · 0 评论 -
第二十节反射机制
可变参数 反射 反射的应用 一.可变参数(…)仅仅是一种语法,注意:要是用可变参数时,要放在方法参数列表的后面 按照可变参数的方式调用 注意1一个方法只有一个可变参数 2.可变参数必须在参数列表之后二.反射 获取类对应的类对象 每一个类都是Class类的对象 获取类中的属性和方法 反射就是一种对类的解刨技术 Class Class类对象(Class认知为类的类) Field 变量原创 2017-09-25 22:42:59 · 474 阅读 · 0 评论 -
第二十一节HTML5
HTML Hyper Text MArkup 超文本标记语言 作用:制作网页的一门语言 java开发宝典 IETF 国际互联网工程任务组1989 蒂姆 伯纳斯 李 (开发了第一个web服务器和客户端) 万维网之父 HTML伯斯塔尔法则 :发送时保守,接收时开放超文本标记语言(第一版)——在1993年6月作为互联网工程工作小组(IETF)工作草案发布(并非标准)1994 年成立了W3C原创 2017-09-25 22:44:28 · 773 阅读 · 0 评论 -
线程之守护线程
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就转载 2017-08-11 17:15:59 · 4883 阅读 · 0 评论 -
自定义数据库连接池
编写连接池需要实现java.sql.DataSource接口.DataSource接口定义了两个重载的getConnection 方法: Connection getConnection() Connection getConnection(String username,String password) 实现DataSource接口,并实现连接池功能的步骤: 在/DataSource构造原创 2017-09-02 12:10:34 · 374 阅读 · 0 评论 -
第三节循环语句和函数初识
1.循环结构:条件满足,某些代码重复执行 for循环 for(表达式1;表达式2;表达式3){ 表达式1:初始化 变量的初始化 只执行一次 表达式2:条件 Boolean类型 true false 循环体: 执行后 表达式3:迭代部分 修改循环变量的值 表达式2 表达式3} 如果缺省表达式2,那么循环条件位true 永远都是成立的 全省略是死循环while循环原创 2017-09-23 21:53:50 · 655 阅读 · 0 评论 -
java网络编程(TCP\UDP)
什么是网络? 网络是主机之间的数据的传输 第一点: 主机 IP地址 :用于定位主机 第二点: 程序 端口port:用于标识主机上的应用程序 第三点:规则–协议 Tcp:面向连接 打电话`确定连接成功后,必须的到回复,连接成功 三次握手 Udp:面向无连接 邮寄信件 只负责发送不管是否收到 效率快 2.java支持网络编程 基于TCP协议:打电话 ,下载 客户端和服务端原创 2017-08-15 22:44:57 · 367 阅读 · 0 评论 -
java线程生产者与消费者模型
多线程之间通信–生产者与消费者模型生产者消费者模式并不是GOF提出的23种设计模式之一,23种设计模式都是建立在面向对象的基础之上的,但其实面向过程的编程中也有很多高效的编程模式,生产者消费者模式便是其中之一,它是我们编程过程中最常用的一种设计模式。 生产者消费者模式是为了解决哪一类问题而产生的呢?在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此原创 2017-08-14 20:40:16 · 402 阅读 · 0 评论 -
java反射技术详细用法
java重中之重反射技术的最常见的用法 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++原创 2017-08-21 18:12:35 · 356 阅读 · 0 评论 -
java中线程同步(线程安全)与死锁问题
1.线程同步,一个关键字:synchronized为什么有这个东西呢,假如有一个对象,里面有成员变量和方法,如果有很多线程都想访问它们,有可能造成用户想避免的结果。我也举那个经典的例子:假如你的银行账户里面有2000块钱,有一天你去银行柜台取钱,取1500,正在你办理的时候,你老婆去了取款机,她也取钱,事先没商量好谁取,所以她也想取1500。如果两个人都取走了1500,合起来就30转载 2017-08-14 15:55:21 · 1600 阅读 · 0 评论 -
java注释详解
代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。也是程序代码可维护性的重要环节之一。所以我们不是为写注释而写注释。下面说一下我们在诉求网二期开发中使用的代码注释规范,供大家参考下。原则:1、注释形式统一在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。如果在其它项目中发现它们的注释规范与这份文档不同,按照这份规范写代码,不要试图在既成的转载 2017-08-14 13:04:51 · 968 阅读 · 0 评论 -
java多态详解(接口指向实现类)
java第三大特性多态,在开发中是相当重要,对于初学者来说能熟悉多态的思想却有很多难点,下面我来一一介绍下我们学习到集合的时候发现了List list= new ArrayList Map map = new HashMap但是发现list只是ArrayList的接口不是它的父类 ,不是父类引用指向子类对象如果是应该是AbstractLIst ablist=原创 2017-08-13 16:00:46 · 13342 阅读 · 6 评论