java
java学习笔记
一二熊猫
这个作者很懒,什么都没留下…
展开
-
32.java用多线程来模拟烧水泡茶,最优线路------一二熊猫冲冲冲
我们最近学习了java的多线程,现在我们来模拟一个烧水泡茶的最优过程。上面的是过程图下面直接上代码:package come;class xishuihu extends Thread { public void run() { System.out.println("开始洗水壶!!!"); System.out.println("水壶洗干净了!!!"); } }class nacaye extends Thread { public void run() { Syst原创 2020-11-08 13:56:32 · 616 阅读 · 3 评论 -
31.volatile关键字的作用-----一二熊猫 冲冲冲啊啊啊
volatile在java中是一个很棒棒的修饰符,在我们使用多线程时,当线程没有结束就发生了互换,这就可能造成一个线程在主存里修改了变量的值,从而带来错误,所以,如果我们还要继续使用它在寄存器中的原本的值,就需要把变量声明为volatile类型(就是不稳定类型,让编译器不要给这个数据进行优化,舍弃优化,换来安全性),volatile会使得这个变量不稳定,每次使用它都要到主存里读取,因此,在多线程环境下,volatile关键字的使用就变得非常重要。一般来说,多线程环境下各线程间的共享的变量都应该加volati原创 2020-11-06 20:00:32 · 76 阅读 · 0 评论 -
30.在java中为啥不用“+”进行字符串的拼接-------一二熊猫冲冲冲
因为在for循环中如果进行加号的话,每次循环都会产生一个StringBuffer对象,例如:int a;String s=“a”;for(int=0;i<10000;i++){s=s+m;}//效率低下,需要建立一万个对象;这是为啥呢·?因为String s="a+b"时,语句会自动转化为:String s=new StringBuffer().append(“a”).append(“b”).toString();这就充分说明了以上for语句为啥会创建一万个对象那么,我们要怎么去修改呢?原创 2020-11-03 22:39:42 · 500 阅读 · 0 评论 -
29.随便写几个String,StrinBuffer以及StringBuilder的常用api测试------一二熊猫冲冲冲
在java中,String与StringBuffer以及StringBuild是一个很重要的东西,他们的区别以及使用方法我已经在上一章进行了说明,现在我来选取几个他们的api进行测试,看看会出现什么结果。1.String:(1).static Comparator<String CASE_INSENSITIVE_ORDER一个对 String 对象进行排序的 Comparator,作用与 compareToIgnoreCase 相同使用它可以对String进行排序;例子:public sta原创 2020-11-03 22:13:26 · 148 阅读 · 0 评论 -
28.Java中的String StrinBuffer StringBuilder的区别和联系------一二熊猫
在java中,String 的对象是不可变的,也就是可以理解为常量,一点被赋值,便不能更改其指向的字符对象,如果更改,便会指向一个新的字符对象。而StringBufffer是一个具有对象引用的传递特点的字符串对象,他并没有对方法进行同步锁或者对调用的方法加同步锁,所以是线程安全的。StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。如果程序不是多线程的,那么使用StringBuilder效果率高于StringBuffer。StringBuffer与StringBuffer有共同的父类A原创 2020-11-01 17:59:47 · 219 阅读 · 0 评论 -
27.java自己编写一个异常类,并将其抛出捕获-------一二熊猫
上一章我们提到了对异常的声明抛出和捕获,我们还可以自己定一个异常类,用来验证原理。那么我们现在来自己定义一个异常类,并对其进行异常的处理抛出。例子1:ackage lianxi;public class yicang extends Exception{yicang(String xx){super(xx);}static void make() throws yicang {int arry=2,arry1=3;if(arry+arry1==5) {throw new yicang(原创 2020-10-25 18:39:15 · 791 阅读 · 2 评论 -
26.java的异常处理!!!冲鸭冲鸭-----一二熊猫
在java中,有异常处理这个概念,异常是我们经常会遇到的,异常发生在我们平时写的代码里,种类非常多,比如当b=0时,a/b,就是一个错误。又比如定义一个数组,int []data=new int [10]data;但是你使用的时候存入了超过定义大小的东西,就发生了越界,等等。那么对于这些我们可以发现单不易发现大错误,我们应该怎么办呢,这就用到了异常处理。异常处理分为声明抛出处理和程序捕获处理,声明抛出处理又分为隐式声明和显示声明,而程序捕获处理又分为非嵌套捕获和嵌套捕获。我们来一起看看吧!首先是隐式声原创 2020-10-25 18:06:08 · 104 阅读 · 1 评论 -
25.java中Error和Exception的区别是什么呢?-------一二熊猫
在Java中,Exception和Error类是平行类。但是Exception是所有异常类的祖先类,而Error是所有错误类的祖先;他们的区别是Error不是程序需要捕获和处理的,例如储存空间不足时,发出OurOfMemoryError的警告,所以,当发生警告时,程序会停止。而Exception有许许多多的子类,当异常发生时,虚拟机系统会根据异常的类型,产生相应的对象,程序中应对这些对像进行处理。就浅显的来说,Error类就相当于外部电脑的硬盘,Exception类就相当于电脑的软件,使用电脑时,硬件出原创 2020-10-25 17:24:54 · 143 阅读 · 0 评论 -
24.什么时候使用组合,什么时候使用继承------一二熊猫
组合组合关系概述实现类的复用除了继承外,还可以使用组合的方式,把该类当成另一个类的组合成分,从而允许新类直接复用该类的public方法。不管继承还是组合,都允许在新类(对于继承就是子类)中直接复用旧类的方法。组合是把旧类对象作为新类的成员变量组合起来,用以实现新类的功能,用户看到的是新类的方法,而不能看到被组合对象的方法。因此,通常要在新类里使用private修饰被组合的旧类对象。组合和继承从类的复用角度看,父类的功能等同于组合中被组合的类,都将自身的方法提供给新类使用;子类和组合关系里的整体类转载 2020-10-20 20:24:08 · 1061 阅读 · 1 评论 -
23.java中接口的使用(啊啊啊,冲啊,冲啊!!!)-------一二熊猫
在java中,有一种叫接口的概念,接口接口,顾名思义,就是一种和别的地方可以连接的“口”,确切的说,接口分为两种:一:是指可以被调用的方法,例如我们熟悉的public或同包装类中的protected方法。二:一种是同“类”的概念地类似的专有概念---------interface。这里我们主要说明interface的使用方法以及它的应用。interfacea类似于class;他的功能是去定义接口,在interface前的修饰符要么是public要么是默认;接口中的数据全是final static形原创 2020-10-20 20:11:02 · 160 阅读 · 0 评论 -
22.java的覆盖,冲冲冲-------一二熊猫
java中,除了重载,还有覆盖这个概念,覆盖和重载很相似,但是覆盖是子类对父类参数相同,返回值类型相同的同名方法进行重新定义,这种多态被称为覆盖。子类的方法覆盖父类的方法,子类的访问修饰符权限有关大于父类的。同名的static方法和非static方法不能互相覆盖。当方法前有final修饰时,就能不能去覆盖。...原创 2020-10-18 16:50:09 · 107 阅读 · 0 评论 -
21.java中的重载。----一二熊猫
在java这门语言中,有重载这个概念,重载重载,顾名思义就是”重新加载”,在类中,如果你定义了多个同名但是参数类容不同的成员方法时,就称这些方法为重载。记住,同名参数但不同类型返回值类型的方法不是重载,编译不能通过。例子:package yinghangfirst;public class lianxi {public void make(String name) { ;//代码}public void make(int data){ ;//代码}}在使用的时候,会根据你传入的值原创 2020-10-18 16:34:07 · 105 阅读 · 0 评论 -
20.java中的组合---一二熊猫
java中,在新类里简单地创建原有类的对象。我们把这种方法叫作“组合”,就比如一个汽车工厂造轮子,一个汽车工厂造外骨架,然后在最终组装时,直接把轮子和外骨架拿去使用就行了。第一种方法非常直观:在新类中创建现有类的对象,通过现有类的对象调用其中的成员,来达到复用代码的目的。由于新类是由现有类的对象所组成的,所以这种方式称为组合。该方式只是复用了现有程序的代码,而并非它的形式。组合是显式的, 组合技术通常用于想在新类中使用现有类的功能而非它的接口的形式。即,在新类中嵌入某个对象,让其实现所需要的功能,但新原创 2020-10-18 16:20:42 · 191 阅读 · 0 评论 -
18.java的访问控制修饰符以及各自的权限?---一二熊猫
在java中,也存在和c、c++一样的控制修饰符,他们在使用中给人们带来极大的便利,在使用时,如果巧妙使用,也能极大的提高程序安全性和实用性,访问的权限取决于类前的哪些修饰符,而类里面的方法和变量,也有属于自己的修饰符。那么,他们都是哪些呢,让我们来看看吧!修饰符修饰的地方有三处,1、修饰类。【类修饰符】 class 类名{}2、修饰类的域变量(属性成员)3、修饰类的成员方法修饰符有哪些呢,1.public public是共有的意思,类前使用public说明这个类可以被所有的东西访问原创 2020-10-18 15:28:23 · 110 阅读 · 3 评论 -
17.java数组元素类型为基本数据类型和元素引用类型时,有什么不同-----一二熊猫
**17.java数组元素类型为基本数据类型和元素引用类型时,有什么不同-**java的数组元素类型为基本数据类型和元素引用类型时,有什么不同呢?如下:如果你声明的是基本数据类型的数组,那各元素都是基本数据类型,不是对象 比如 :int[] a = new int[3];如果你声明的是引用类型的数组,那各元素都是对象 比如:Object[] test = new Object[12];基本数据类型和引用数据类型的区别:基...原创 2020-10-04 14:36:29 · 264 阅读 · 0 评论 -
16.java中 float [10] arr是正确的吗?为什么?---一二熊猫
**16.java中 float [10] arr是正确的吗?为什么?**看这个问题就知道是在考java中一维数组的应用,在java中,一维数组有三种定义方式,如:**1.int [ ] arr=new int [10];2.int [ ] arr={1,2,2,3,4,5,6,};3.int [ ] arr=new int [ ] {1,2,3,4,5,6,};**int arr [ ]=int ...原创 2020-10-04 14:16:39 · 250 阅读 · 0 评论 -
15.java中的final修饰符有什么作用?------一二熊猫
**15.java中的final修饰符有什么作用?**Java中有一个修饰符final,这个修饰符有什么作用呢?以final修饰类属性,则该属性为常量;如果修饰方法,则该方法为最终方法,在子类中不能被覆盖,利用final修饰符可以防止数据被篡改,保证了程序的安全性和正确性!例:public Constant{static final int ok=10;static fina...原创 2020-10-04 13:44:02 · 258 阅读 · 0 评论 -
14.类的static字段和非static字段的区别是什么?什么情况需要使用static字段?--一二熊猫
**14.类的static字段和非static字段的区别是什么?什么情况需要使用static字段?**static修饰符修饰的域变量不属于任何一个类的具体对象。它被保存在类的内存区的公共储存单元中,而不是保存在某个对象的内存区域内,因此,一个类的任何对象访问它的时候得到的数值都是相同的,方位的方式为“类名.域名”,也可以通过对象引用,来访问。下面总结:1.static方法是类的方法,但可以被所有的对象访问。调用这个方法是,可采用“对象引用.方法名”,...原创 2020-10-04 13:31:23 · 354 阅读 · 2 评论 -
java是什么语言?一个程序是怎么产生运行的-----一二熊猫
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Java语言是编译型语言还是解释型语言?(Java程序执行过程)》, 一起来围观吧 https://blog.csdn.net/weixin_43876206/article/details/93330986?utm_source=app取自这个博客,仅做自己笔记...原创 2020-12-27 17:38:15 · 107 阅读 · 0 评论 -
39.字节流和字符流的转换-----一二熊猫冲冲冲!!!
在java中,提供字节流和字符流的互相转化,我们先来看看字节流和字符流的不同(找到一张清晰的图片,侵删)为了便于记住,可以认为以steam结尾的就是字节流,在最前面的标识就可以区分这个流是干什么用的,以writer和reader结尾的就是字符流,字节流操作的基本单元是字节,字符流操作的基本单元是Unicode码元。且字节流默认不使用缓冲区,而字符流使用缓冲区。字节流通常用于处理二进制数据。1.字节输入流转换为字符输入流:InputStreamReade是字节流通向字符流的桥梁,它使用定制的chars原创 2020-12-15 11:35:08 · 1690 阅读 · 0 评论 -
38.字节流InputStream和OutputStream的子类,以及对应的字符流有哪些 ------一二熊猫
字节流InputStream和OutputStream的大致子类如下:java标准io输入/输出in,out://java标准io输入/输出package io;import java.io.IOException;public class io_two { public static void main(String args[]) throws IOException { System.out.print("input:"); byte data[]=new原创 2020-12-15 11:05:04 · 227 阅读 · 0 评论 -
37.Java中的流有哪些呢?----一二熊猫冲冲冲
在Java 中,输入和输出主要靠"流"来进行输入输出(i/o),那么,有哪些流呢?他们又是怎么区分的呢,现在我们来探讨一下一:按输入流和输出流来区分,对于文件,程序可以通过输出流向文件写数据,用输入流从文件读取数据。而对于键盘,只有输入流,就是针对屏幕的输出流;二:在读取上面,分为字节流和字符流。字节流是从InputStream和OutputStream派生出来的一系列类,他们以字节为基本处理单位,他们的继承关系,可以分为:而字符流是从Reader和Writer派生出的一系列类,他们的继承关系如下原创 2020-12-15 10:56:51 · 121 阅读 · 0 评论 -
36.tcp协议和upd协议的不同之处,以及为什么tcp是面向对象的可靠协议?---------一二熊猫冲冲冲
我们所需要探讨的的TCP协议和UDP协议其实可以有一个很好的例子做对比:现在我们要通知同学一个新消息—“老师要求我们去逸夫楼做实验”,我们可以有很多的方法去通知对方,比如打电话,发qq发微信,以及去当面找他,那么这里我们就打电话和发短消息而言,TCP就是打电话通知他,而UDP就是我们发消息给他,就是说,TCP是需要连接之后才可以联系的,而UDP是不需要的。那么他们的优缺点在哪里呢?对于TCP而言,TCP提供可靠的服务,也就是说TCP通过建立连接传送数据,可以达到无差错,不丢失,并且不会重复。而对于UDP而原创 2020-11-16 13:46:53 · 230 阅读 · 1 评论 -
35.仿照15.4,编写完整的基于Socket的多客户/服务器通信程序-------------一二熊猫冲冲冲
vdfss原创 2020-11-16 16:51:09 · 276 阅读 · 0 评论 -
34.java的七层通信协议,以及他们各层解决的问题是什么-------一二熊猫冲冲冲
计算机网络形式多种多样,网络上的计算机要互相通信就必须遵守一定的协议,这些协议,就如同我们身边的法律,遵守它们,我们才可以好好使用计算机。那么,让我们来看看这些协议:一。应用层,表示层,会话层。他们执行的协议是:HTTP,FTP,TELNET,SMTP,等等,以及TFTP,RTP,REAL AUFIO 等二。传输层:遵守TCP以及UDP三。网络层:遵守IP,ICMP,IGMP四。数据链路层:HDLC,PPP,SLIP,ETHERENT,X.25,FDDI,TokenRing五。物理层:RS-23原创 2020-11-15 16:06:21 · 395 阅读 · 1 评论 -
10.java运算符&&和&的区别,逻辑运算符&和位运算符&的区别
1.java的&&和&都表示and运算,当两边的数都为true的时候才为true的时候才为真,否则为false、不同的是,&是运算符的左右两边的算式子进行运算,再进行计算,而&&符是从左边运算,第一个式子如果错误,那么就不在对右边算式进行运算。用&&的目的是加快运算速度,但也要防止用法上的问题。2.逻辑运算符只能对boolean类型进行比较,但是位运算符还可以对数字进行比较逻辑运算符存在短路的现象,即前边的表达式可以得到最终结果是,后面的表原创 2020-09-26 21:24:05 · 366 阅读 · 0 评论 -
9.int 和integer的区别以及他们之间的转换
在java中,基本数据类型都有其相对应的包装类,例如;char----Character. short ---- Short , long ----Long,byte ----Byte,int ----Integer, float----Float,double----Double举例:int ----Integerint是基本数据类型,Integer是应用类型,实际为一个对象,用来储存引用对象的地址,Integer占用的内存更大,那么,这个包装类是怎么定义的呢 Integer s=new Inte原创 2020-09-26 21:24:35 · 178 阅读 · 0 评论 -
8.java为什么要包装类??
java中的类,类似于c/c++中的类,每个项目,如软件的制作,包就算是一个模块,类就是各个模块下的方法,各个功能由类来完成,类下再有各个具体方法来完成各个指令,类可以极大的提高工作效益,提供一个借口,来完作业,是一个很好的功能,更加严密。...原创 2020-09-26 21:24:44 · 99 阅读 · 0 评论 -
7.java基本数据类型转换包含哪两类?
在平时使用java的时候,时常会发生数据类型转换的为题,有时候数据会不明不白转换为不是我们需要的类型,所以了解数据的转换是必要的,那么,数据的转换分为几类呢???,其实在java中,数据的转换分为两类,一类为隐式数据转换,一类为显示数据转换,现在我们一起去看一看吧!1.隐式转换类型(自动转换类型):隐式转换是指把精度低的值转换为精度高的值,这是由系统自己完成的,我们不会看到专换的过程,例如:char类型会制动转换为int类型。而int类型的数据转换为char则需要我们自己去动手。类似的还有float类型的原创 2020-09-26 21:24:56 · 2567 阅读 · 0 评论 -
5.java包含哪些数据类型
最近学习了java,java是一门神奇的语言,简便快捷,人性化,让人使用起来很舒服,那么,java包含哪些数据类型呢???java的数据类型类似于c/c++,大概可以分为三大类:1.数值型。数值型是指整数类型和浮点数类型,整数中,又分为比byte,short,int,long这是四种,例如:1.byte a=5,它的位数是8位,默认值为0.它是“位”.2.short b=10,它的位数是16位,默认值为0.它是“短整数”.3.int c=15,它的位数是32位,默认值为0.它是“整数”.4.l原创 2020-09-26 21:25:10 · 203 阅读 · 0 评论 -
4.java中JDK,JRE,JVM的区别
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的原创 2020-09-26 21:25:22 · 208 阅读 · 0 评论 -
3.java跨平台原理冲冲冲鸭!
java跨平台实现的原理是,java将源程序编译成字节码文件,即扩展名为.class形式,这个二进制代码文件和具体的操作系统的机器指令无关,它的运行必须借助解释执行系统动态翻译成所在操作系统的机器码。(即是用java虚拟机将其解释为当前系统所认识的机器码)这样就可以做到只编译一次,就可以在多个机器系统上使用。只需要相应的翻译,就极大的便利了程序员。这些是书上的,但是就我自己体会,就是java讲代码翻译成一种电脑编码,然后在不同的系统上,由java虚拟机,将编码翻译成这个系统相符的代码,进行运行,大概就是这原创 2020-09-26 21:25:34 · 176 阅读 · 0 评论 -
2.java语言的特点冲冲冲啊
java语言的特点主要包括:1.简单。2.纯面相对象。3.平台无关性,java数据在任何机器上都是一致的,编译成的字节码文件由java虚拟机在不同操作系统上解释执行。4.java没有c++里的指针数据类型,所以具有稳定性和安全性。5.是多线程并且是动态的。6.具有高效性。7.分布式:包括数据分布和操作系统分布的特点。这些是书上得知的,就我个人而言还没有太大的感触,刚接触java,基本是小白,最简洁的就是java很规范化,常量和变量啊,类名啊,都是很严谨的,驼峰原理,很好的东西,这些都是之前学的没有的,还在原创 2020-09-26 21:25:47 · 103 阅读 · 0 评论