基础
段远山
山不向我走来,我便向它走去!.........张雨亭
展开
-
打印三角形
代码演示:package zhao.struct;/** * zhao.struct * Created on 2020/9/16. */public class TestDemo01 { public static void main(String[] args) { //打印三角形 5行 for (int i = 1; i <= 5; i++) { for (int j = 5; j >= i; j--原创 2020-09-16 22:15:40 · 542 阅读 · 0 评论 -
if语句和switch语句的选择与区别
if语句和Switch语句的选择if选择结构基本if选择结构: 处理单一或组合条件的情况if-else选择结构:处理简单的条件分支情况多重if选择结构:处理复杂的条件分支情况嵌套if选择结构:用于较为复杂的流程控制switch选择结构多重分支并且条件判断是等值判断的情况if语句和switch语句的区别:if语句:表达式的结果是boolean类型常用于区间判断switch:表达式类型不能是boolean类型,可以是byte,int,char,String,枚举。常用.原创 2020-09-16 21:54:51 · 1977 阅读 · 0 评论 -
break、continue、return之间的区别
break用于完全结束一个循环,跳出循环体,开始执行循环之后的代码。break用于强行退出循环,不执行循环中剩余的语句(break语句也在switch语句中使用)。 continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是完全中止循环。 return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接..原创 2020-09-15 23:32:19 · 347 阅读 · 0 评论 -
扯淡的九九乘法表
方法一:package zhao.struct;/** * zhao.struct * Created on 2020/9/15. */public class Demo03 { public static void main(String[] args) { for (int j = 0; j <= 9; j++) { for (int i = 1; i <= j; i++) { System.o原创 2020-09-15 22:45:29 · 164 阅读 · 0 评论 -
用for循环输出1-100之间能被5整除的数,并且每行输出3个
用for循环输出1-100之间能被5整除的数,并且每行输出3个package zhao.struct;/** * zhao.struct * Created on 2020/9/15. */public class Demo01 { public static void main(String[] args) { //用for循环输出1-100之间能被5整除的数,并且每行输出3个 for (int i = 0; i < 100; i++) {原创 2020-09-15 22:08:30 · 9359 阅读 · 0 评论 -
计算0到100之间的奇数和偶数的和
1.代码如下:package zhao.scanner;/** * zhao.scanner * Created on 2020/9/14. */public class Demo07 { public static void main(String[] args) { //计算0到100之间的奇数和偶数的和 int oddSum = 0; int evenSum = 0; for (int i = 0; i &l原创 2020-09-15 00:02:06 · 4433 阅读 · 0 评论 -
for循环及判断语句的20个经典习题
package zhao.scanner;public class Demo06{ public static void main(String[] args){ /**********************************************************/ //1.求10的阶乘(阶乘 5!=1*2*3*4*5) int a = 1; for(int i=1;i<=10;i++){ a*=i; } Syst.原创 2020-09-14 22:05:57 · 6044 阅读 · 1 评论 -
While和do-While的区别:
While和do-While的区别:While先判断后执行,do-While是夏娜执行后判断 do-While总是保证循环体会被执行一次。代码演示:package zhao.scanner;/** * zhao.scanner * Created on 2020/9/14. */public class Demo05 { public static void main(String[] args) { int a = 0; while (原创 2020-09-14 21:58:38 · 267 阅读 · 0 评论 -
case穿透性
/* switch特性:case穿透性 案例:星期1-5输出 工作日,星期六日输出休息日 case1 case2 ....case5 输出结果相同 case后面的常量,和switch中数据相同,没有break 一直向下穿透 case后面没有break,程序就会一直向下穿透 若两个break注释掉 则会输出 工作日 休息日 */public class Demo1{ public static void main(String.原创 2020-09-13 21:03:48 · 813 阅读 · 0 评论 -
Scanner中nextLine()方法和next()方法的区别
ScannerJava提供了一个工具类,实现程序和人的交互,我们可以获取用户的输入。Java.util.Scanner 是Java5 的新特征,可以通过Scanner类来获取用户的输入 通过Scanner类的next()与nextLine()方法来获取输入的字符串,在读取前我们一般要使用hasNext()与hasNextLine()判断是否还有输入数据 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Mat原创 2020-09-13 11:22:30 · 392 阅读 · 0 评论 -
Tomcat目录
Tomcat目录bin :存放启动和关闭Tomcat脚本 conf :存放Tomcat不同的配置文件 doc:存放Tomcat文档 lib:存放Tomcat运行需要的库文件 logs:存放Tomcat执行时的LOG文件 src:存放Tomcat的源代码 webapps:Tomcat的主要Web发布目录 work:存放jsp编译后产生的class文件...原创 2020-09-09 21:32:29 · 168 阅读 · 0 评论 -
常用转义字符
转义字符 转义字符的意义 ASCII代码 \n 换行 10 \t 横向跳到下一制表位置 9 \b 退格 8 \r 回车 13 \f 走纸换页 12 \\ 反斜线符”\” 92 \’ 单引号符 39 \” 双引号符 34 \a 响铃 7 \ddd 1~3位八进制数所代表的字符 \xhh 1~2位十六进制数所代表的字符 ...原创 2020-09-08 00:00:14 · 310 阅读 · 0 评论 -
JDK 中几个常用的设计模式
JDK 中几个常用的设计模式?1、单例模式作用:保证类只有一个实例。JDK中体现:Runtime类。2、静态工厂模式作用:代替构造函数创建对象,方法名比构造函数清晰。JDK中体现:Integer.valueOf、Class.forName3、抽象工厂作用:创建某一种类的对象。JDK中体现:Java.sql包。4、原型模式clone();原型模式的本质是拷贝原型来创建新的对象,拷贝是比new更快的创建对象的方法,当需要大批量创建新对象而且都是同一个类的对象的时候原创 2020-09-07 22:14:42 · 2700 阅读 · 0 评论 -
jsp 和 servlet 有什么区别
jsp 和 servlet 有什么区别?1、servlet是服务器端的Java程序,它担当客户端和服务端的中间层。2、jsp全名为Java server pages,中文名叫Java服务器页面,其本质是一个简化的servlet设计。JSP是一种动态页面设计,它的主要目的是将表示逻辑从servlet中分离出来。3、JVM只能识别Java代码,不能识别JSP,JSP编译后变成了servlet,web容器将JSP的代码编译成JVM能够识别的Java类(servlet)。4、JSP有内置对象、ser原创 2020-09-07 22:10:30 · 379 阅读 · 0 评论 -
Collection 和 Collections 有什么区别?
Collection 和 Collections 有什么区别?1、Collection是最基本的集合接口,Collection派生了两个子接口list和set,分别定义了两种不同的存储方式。2、Collections是一个包装类,它包含各种有关集合操作的静态方法(对集合的搜索、排序、线程安全化等)。此类不能实例化,就像一个工具类,服务于Collection框架。...原创 2020-09-07 21:52:38 · 2827 阅读 · 0 评论 -
equals和hashcode的关系
equals和hashcode的关系如果equals为true,hashcode一定相等; 如果equals为false,hashcode不一定不相等; 如果hashcode值相等,equals不一定相等; 如果hashcode值不等,equals一定不等; 重写equals方法时,一定要重写hashcode方法...原创 2020-09-07 21:51:06 · 196 阅读 · 0 评论 -
hashcode()方法的作用
hashcode()方法的作用hashcode()方法主要配合基于散列的集合一起使用,比如HashSet、HashMap、HashTable。当集合需要添加新的对象时,先调用这个对象的hashcode()方法,得到对应的hashcode值,实际上hashmap中会有一个table保存已经存进去的对象的hashcode值,如果table中没有改hashcode值,则直接存入,如果有,就调用equals方法与新元素进行比较,相同就不存了,不同就存入。...原创 2020-09-07 21:00:15 · 518 阅读 · 1 评论 -
IDEA 快捷键大全
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以快速打开文件Alt+Q,可以看到当前方法的声明Ctrl+P,可以显示参数信息C原创 2020-09-07 20:52:43 · 112 阅读 · 1 评论 -
IDE 集成开发环境
发展历程从开始在主机或终端机开发程序,IDE才渐渐的成为必要的工具。早期的编程语言在送进编译器处理之前,必须要先经过流程图、撰写表格、打卡,所以当时并不需要IDE。Basic是第一个有IDE的编程语言,同时也是第一个可以直接在主机或终端机前开发程序,他的IDE(Dartmouth Time Sharing System的一部份)是采取命令行的方式,并不像现代的IDE使用选单和图形化。但是他良好的整合了编辑、档案、管理、编译、调试、执行等功能,符合现代化IDE的特性。今天,IDE这个词和一些没有关..原创 2020-09-06 16:08:29 · 786 阅读 · 0 评论 -
动态代理
1. jdk自带的动态代理可以代理一个已经实现接口的类。2. cglib代理可以代理一个普通的类。3. 动态代理的基本实现原理都是通过字节码框架动态生成字节码,并且在用defineclass加载类后,获取代理类的实例。一般需要实现一个代理处理器,用来处理被代理类的前置操作和后置操作。在JDK动态代理中,这个类叫做invocationHandler。4. JDK动态代理首先获取被代理类的方法,并且只获取在接口中声明的方法,生成代理类的字节码后,首先把这个类通过defineclass定义成一个类原创 2020-09-06 09:03:38 · 116 阅读 · 0 评论 -
javac命令和java命令做什么事情呢?
javac命令和java命令做什么事情呢?javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。 java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数....原创 2020-09-05 21:40:42 · 976 阅读 · 0 评论 -
数组越界
抛出ArrayIndexOutOfBoundsException原创 2020-09-05 21:23:08 · 152 阅读 · 0 评论 -
Java continue语句详解
continue 语句是跳过循环体中剩余的语句而强制执行下一次循环,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。continue 语句类似于 break 语句,但它只能出现在循环体中。它与 break 语句的区别在于:continue 并不是中断循环语句,而是中止当前迭代的循环,进入下一次的迭代。简单来讲,continue 是忽略循环语句的当次循环。注意:continue 语句只能用在 while 语句、for 语句或者 foreach 语句的循环体之中,在这原创 2020-09-05 20:56:00 · 1184 阅读 · 0 评论 -
Java反射机制是什么?
Java反射机制是Java语言的一个重要特性。在学习Java反射机制前,大家应该先了解两个概念,编译期和运行期。编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作,比如检查错误。运行期是把编译后的文件交给计算机执行,直到程序运行结束。所谓运行期就把在磁盘中的代码放到内存中执行起来。Java 反射机制是在运行状态中,对于任意一个类,都能够知道原创 2020-09-05 20:39:08 · 304 阅读 · 0 评论 -
sessionID的本质、保存在哪里?
一、客户端用cookie保存了sessionID 客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么session超时了(没有请求服务器超过20分钟),session被服务器清除了,则服务器会给你分配一个新的sessi...原创 2020-07-16 15:11:02 · 6688 阅读 · 2 评论 -
同步方式与异步方式的区别
同步方式与异步方式的区别 异步请求是进行局部刷新,同步请求是进行整体刷新 异步请求是由ajax的引擎发起的,同步请求是由浏览器发起的 异步请求在请求发起之后还没收到响应之前还可以再次发起其它请求不影响当前页面的操作,而同步请求在发起之后,只有收到了响应后才能进行其它操作。 同步方式发送请求 发送一个请求,需要等待响应返回,然后才能够发送下一个请求,如果该请求没有响应,不能发送下一个请求,客户端会处于一直等待过程中。异步方式发送请求发送一个请求,...原创 2020-06-15 10:05:12 · 2825 阅读 · 0 评论 -
Lambda 表达式
什么是Lambda 表达式?Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。注意:Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda原创 2020-06-11 15:36:53 · 250 阅读 · 0 评论 -
龟兔赛跑案例(Java代码演示)
案例要求:代码演示:/** * PACKAGE_NAME * Created on 2020/6/11. */public class demo03 implements Runnable{ //胜利者 使用static保证只有一个 private static String winner; @Override public void run() { for (int i = 0; i <= 100; i++) {原创 2020-06-11 11:24:18 · 1592 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer三者的区别
这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。以下面一段代码为例:public class demo04 {原创 2020-06-10 22:59:30 · 330 阅读 · 0 评论 -
简单介绍一下instanceof
java中,instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个类(可以是接口),用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是返回true,否则返回false。(使用instanceof关键字做判断时, instanceof 操作符的左右操作数必须有继承或实现关系)简单点就是:instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。代码演示:public clas原创 2020-06-10 15:18:37 · 435 阅读 · 0 评论 -
Web中的三个域对象
一、ServletContext域对象1、作为一个域对象,它配有相应的api来操作域对象中的数据setAttribute(String key,Object value);向域对象中存入键值对getAttribute(Stirng key)从域对象中取value值removeAttribute(String key);将域对象中的指定值删除2、ServletContext域对象的生命周期及作用范围出生:web应用一但被加载,该web应用对应的ServletContext对象就会被创建存.原创 2020-06-10 14:41:46 · 502 阅读 · 0 评论 -
深入理解static关键字
1、什么是static? static是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? static的主要意义是在于创建独立于具体对象的域变量或者方法。以致于即使没有创建对象,也能使用属性和调用方法! static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static...原创 2020-06-10 11:31:57 · 282 阅读 · 1 评论 -
JAVA中的构造器
什么是构造器?作用:创建对象 初始化成员变量 创建对象的时候执行初始化构造器中需要注意的地方:构造器的名称必须与类名同名,包括大小写。 构造器没有返回值,但也不能写void,也不能写return。 构造器的参数:一般是初始化对象的前提条件。 用new调用!且对象一建立,构造器就运行且仅运行一次。一般方法可被调用多次。 类一定有构造器!这是真的,不需要质疑! 如果类没有声明(定义)任何的构造器,Java编译器会自动插入默认构造器! 默认构造是无参数,方法体是空的构造器,且默认原创 2020-06-09 11:15:07 · 402 阅读 · 0 评论 -
遍历Arraylist的三种方法及优缺点简单介绍
集合ArrayList是接口List的一种子类,它的特点是:存储的元素是有序的.底层的数据结构是数组.查询快,增删慢.在众多集合中ArrayList的遍历又是比较特殊的,下面就写一下它的三种遍历方式,代码如下:第一种遍历方式:普通for循环第二种遍历方式:增强for循环第三种遍历方式:迭代器import java.util.ArrayList;import java.util.Iterator;/** * PACKAGE_NAME */public class Demo.原创 2020-06-08 08:49:59 · 999 阅读 · 0 评论 -
Java中基本数据类型与引用数据类型的介绍
引用类型在堆里,基本类型在栈里。 栈空间小且连续,往往会被放在缓存。引用类型cache miss率高且要多一次解引用。 对象还要再多储存一个对象头,对基本数据类型来说空间浪费率太高原创 2020-06-08 00:37:20 · 446 阅读 · 0 评论 -
BIO、NIO、AIO简单介绍
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。 NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。 AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。...原创 2020-06-07 23:43:16 · 136 阅读 · 0 评论 -
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()?
答:Set里的元素是不能重复的,元素重复与否是使用equals()方法进行判断的。原创 2020-06-07 23:28:42 · 577 阅读 · 0 评论 -
Collection 和 Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作原创 2020-06-07 20:05:05 · 156 阅读 · 0 评论 -
九九乘法表
代码演示:public class Demo01 { //打印九九乘法表 public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j=1;j<=i; j++){ System.out.print(j+"*"+i+"="+(i*j)+"\t"); } S原创 2020-06-07 16:25:01 · 118 阅读 · 0 评论 -
Eclipse快捷键大全
编辑类快捷键 Ctrl+1 快速修复(最经典的快捷键,可以解决很多问题,比如 import 类、try catch 包围等) Ctrl+Shift+F 格式化当前代码 Ctrl+Shift+M 添加类的 import 导入 Ctrl+Shift+O 组织类的 import 导入(既有 Ctrl+Shift+M 的作用,又可以去除没用的导入,一般用这个导入包) Ctrl+Y 重做(与撤销 Ctrl+Z 相反) Alt+/ 内容辅助(用户编辑的好帮..原创 2020-06-07 09:05:28 · 127 阅读 · 0 评论