java基础
pengzhisen123
这个作者很懒,什么都没留下…
展开
-
静态方法中不能new内部类的实例对象的总结
class Test{ public void main(String[] args){ A testA=new A(); //这里会出现问题 new Thread(new Runnable(){ public void run(){ testA.printout(); } })...转载 2018-05-08 16:52:02 · 305 阅读 · 0 评论 -
Set
Set:元素无序(存入和取出的顺序不一定一致),元素不可以重复 HashSet:底层数据结构是哈希表。 TreeSet: public class HashSetDemo { public static void main(String[] args) { Demo d1=new Demo(); Demo d2=new Demo(); sop(d1);...原创 2018-05-03 08:40:53 · 136 阅读 · 0 评论 -
LinkedList和ArrayList练习
一、使用LinkedList模拟一个堆栈或者队列数据结构 堆栈:先进后出 队列:先进先出(FIFO)1、堆栈import java.util.LinkedList;public class LinkedListDemo { public static void main(String[] args) { Queue queue=new Queue(); queue...原创 2018-05-02 18:09:42 · 310 阅读 · 0 评论 -
List的共性方法
Collection List:元素有序的,元素可以重复。因为该集合体系有索引。 ArrayList:底层的数据结构使用的是数组结构。特点:查询速度快,但是增删较慢。线程不同步。初始长度为10,默认扩充为原来的1.5倍。 ListedList:底层使用的链表结构。特点:增删速度很快,查询速度较慢。 ...原创 2018-05-02 16:52:42 · 280 阅读 · 0 评论 -
集合框架(共性方法)
以Collection接口下的ArrayList为例:import java.util.ArrayList;/* * 1、add方法的参数类型是Object,以便于接收任意类型的对象。 * 2、集合中存储的都是对象的引用(地址)。 * */public class CollectionDemo { public static void main(String[] args) { ...原创 2018-04-30 21:36:30 · 219 阅读 · 0 评论 -
集合类常见问题
1、为什么会出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。(数据多了用对象来存,对象多了用集合来存。比如:一个人有很多数据,年龄,身高等,一个人就是一个对象,而人多了,就用集合来存,人是唯一的)2、数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的;集合的长度是可变的。数组...原创 2018-04-30 21:02:14 · 391 阅读 · 0 评论 -
多线程
进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序。该顺序是一个执行路径。或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。线程在控制着进程的执行。注意:一个进程中至少有一个线程。JVM 启动的时候会有一个进程 java.exe.该进程中至少有一个线程负责java程序的执行。而且这个线程运行的代码存在于main方法中。该线程称为原创 2017-12-18 21:39:51 · 137 阅读 · 0 评论 -
长度
字符串的str 的长度为str.length();str.charAt();//方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1注意:当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuil原创 2017-12-05 22:27:33 · 187 阅读 · 0 评论 -
Array和Arrays的区别
Array的api如下:public final class Array extends ObjectThe Array class provides static methods to dynamically create and access Java arrays.Array permits widening conversions to occur during a原创 2017-12-18 21:46:35 · 8928 阅读 · 0 评论 -
面向对象---多态
多态:可以理解为事物存在的多种体现形态。比如:人:男人,女人多态的体现:多态的前提多态的好处多态的应用原创 2017-11-12 14:35:00 · 244 阅读 · 0 评论 -
面向对象--静态代码块
静态代码块格式:static{静态代码块中的执行语句。}特点:随着类的加载而执行一次,且只执行一次。并优先于主函数。作用:用于给类进行初始化。public class Demo26 { static{ System.out.println("A"); } public static void main(String[] args)原创 2017-11-06 11:53:58 · 155 阅读 · 0 评论 -
帮助文档的制作--javadoc
上一节定义了一个静态的工具类ArrayTool:如果将ArrayTool.class文件发送给其他人,其他人只要将该文件设置到classpath路径下,就可以使用该工具类。但是,我们却不清楚,该类中到底定义了多少个方法,因为该类并没有使用说明书。开始制作程序的说明书,java说明书通过文档注释来完成。步骤如下:1、首先,这是一个可以对数组进行操作的工原创 2017-11-06 11:04:31 · 158 阅读 · 0 评论 -
网络编程(概述)--ip
两个主机进行通信: 1、首先要找的对方的IP 2、数据要发送到对方的指定的应用程序上,为了标识这些应用程序,所以给这些为了应用程序都用数字进行标识。为了方便称呼这个数字,叫做端口,该端口较逻辑端口。 3、定义通信规则。这个通信规则称为协议。获取本地的主机名和ip地址:import java.net.InetAddress;import java.net.UnknownHostE...原创 2018-05-03 15:47:15 · 147 阅读 · 0 评论 -
TCP、UDP和Socket
UDP 1、将数据及源和目的地址封装成数据包中,不需要建立连接; 2、每个数据报的大小限制在64k内; 3、因无连接,是不可靠协议; 4、不需要建立连接,速度快。TCP 1、建立连接,形成传输数据的通道; 2、在连接中进行大量数据量传输; 3、通过三次握手完成连接,是可靠协议; 4、必须建立连接,效率会稍低。Socket 1、Socket就是为...原创 2018-05-03 16:13:53 · 101 阅读 · 0 评论 -
多线程与并发----创建线程的两种传统方式
方法一:通过继承Thread方法:(在Thread子类覆盖的run方法编写运行代码)public class ThreadTest1 { public static void main(String[] args) { Thread thread1=new Thread(){ public void run(){ while(true){ try { ...原创 2018-05-08 15:25:13 · 137 阅读 · 0 评论 -
当你在浏览器输入一个网址,按回车之后发生了什么?请从技术的角度描述,如浏览器、网络(UDP、TCP、HTTP等),以及服务器等各种参与对象上由此引发的一系列活动,请尽可能的涉及到所有的关键技术点。
链接:https://www.nowcoder.com/questionTerminal/4150a74bd14d4bd3a0d3f133376c97c7来源:牛客网1、 我们输入一个域名: www.taobao.com 2. 浏览器查找浏览器缓存,如果有域名的 IP 地址则返回,如果没有继续查找; 3. 系统查找系统缓存,如果有域名的 IP 地...转载 2018-05-07 21:18:58 · 1123 阅读 · 0 评论 -
【java】Static解读和public static void main(String[] args)详细分析
首先问一个问题:public static void main(String[] args)代码代表了什么含义?以及思考为什么java程序一开始就会进入main()函数,其实c、c++也是如此?后面一个问题有static的基础就非常容易。(后一个问题的答案提前公布:用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块) 现在回到第一个问题: 下面分别解...转载 2018-05-05 09:28:31 · 3353 阅读 · 0 评论 -
类的特点--继承
继承的优点:1、提高了代码的复用性。2、让类与类之间产生了关系,有了这个关系,才有了多态的特性。注意:不要为了获取其他类的功能,简化代码而继承,必须是类与类之间有所属关系才可以继承。java中的继承:1、java只支持单继承,不支持多继承。(因为多继承容易带来安全隐患。当多个父类定义了相同的成员,子类对象不确定运行哪一个。但java保留这原创 2018-05-11 15:08:04 · 263 阅读 · 0 评论 -
Java中的HashMap,LinkedHashMap,TreeMap,HashTable的区别
Map与List、Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射。同时它也没有继承Collection。在Map中它保证了key与value之间的一一对应关系。也就是说一个key对应一个value,所以它不能存在相同的key值,当然value值可以相同。实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。M原创 2018-05-11 14:42:03 · 211 阅读 · 0 评论 -
TCP--上传图片
需求:上传图片客户端: 1、服务器端点; 2、读取客户端已有的图片数据; 3、通过socket输出流将数据发给服务端; 4、读取服务端反馈信息; 5、关闭资源。import java.awt.Button;import java.io.FileInputStream;import java.io.IOException;import java.io.InputS...原创 2018-05-04 17:42:07 · 250 阅读 · 0 评论 -
TCP复制文件
客户端:import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;imp...原创 2018-05-04 17:02:52 · 292 阅读 · 0 评论 -
UDP---编写一个聊天程序
需求:编写一个聊天程序;功能: 有接收数据的部分,有发送数据的部分,这两部分需要同时执行,也就是说需要用到多线程技术。一个线程控制数据的接收,另一个线程控制数据的发送。import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.Dat...原创 2018-05-03 19:52:25 · 346 阅读 · 0 评论 -
UDP--发送、接收
UDP发送: 需求:通过udp传输方式,将一段文字数据发送出去。 思路: 1、建立udpsocket服务 2、提供数据,并将数据封装到数据包中 3、通过socket服务的发送功能,将数据包发送出去。 4、关闭资源。 DatagramSocket:此类表示用来发送和接收数据报包的套接字。在 DatagramSocket 上总是...原创 2018-05-03 19:05:55 · 3985 阅读 · 0 评论 -
TCP练习
需求:建立一个文本转换服务器。 客户端给服务端发送文本,服务端会将文本转成大写再返回给客户端。而且客户端可以不断的进行文本转换,当客户端输入over时,转换结束。分析: 客户端: 既然是操作设备上的数据,那么就可以使用IO技术,并按照IO的操作规律来思考。 源:键盘录入: 目的:网络设备,网络输出流。 而且操作的是文本数据,可以选...原创 2018-05-04 09:30:32 · 141 阅读 · 0 评论 -
TCP传输
TCP传输 1、TCP分客户端和服务端。 2、客户端对应的对象是Socket;服务端对应的对象是ServerSocket; 3、建立客户端和服务器端 4、建立连接后,通过Socket中的IO流进行数据的传输 5、关闭socket 同样,客户端与服务器端是两个独立的应用程序。 客户端: 通过查阅socket对象,发现在该对象建立时,就可以连接指...原创 2018-05-03 21:30:46 · 118 阅读 · 0 评论 -
面向对象--异常
异常:就是程序在运行时出现的不正常情况。异常的由来:问题也是现实生活中的一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。其实口试java对不正常情况进行描述后的对象体现。对问题的划分:1、严重的问题java通过Error类进行描述。(对于Error一般不编写针对性的代码对其进行处理)2、非严重的问题原创 2017-11-20 11:34:13 · 196 阅读 · 0 评论 -
静态的应用--工具类
静态使用要从两方面入手:因为静态修饰的内容有成员变量和函数。下面建立ArrayTool的对象使用这些工具方法,对数组进行操作。public class Demo24 { public static void main(String[] args) { } }class ArrayTool{ public int getMax(int[] arr){原创 2017-11-06 09:25:29 · 228 阅读 · 0 评论 -
面向对象
面向对象的概念面向对象是相对面向过程而言,面向对象和面向过程都是一种思想面向过程:强调的功能行为面向对象:将功能封装进对象,强调具备了功能的对象;面向对象是基于面向过程的。面向对象的三大特征:1、封装2、继承3、多态注意:以后的开发,其实就是找对象使用,没有对象,就创建一个对象。原创 2017-11-03 10:18:04 · 133 阅读 · 0 评论 -
面向对象--模板方法模式
通过一个实例来说明:需求:获取一段程序运行的时间。原理:获取程序开始和结束的时间并x相减即可:获取时间:System.currentTimeMillis();public class Demo40 { public static void main(String[] args){ GetTime gt=new GetTime(); gt.getTime();原创 2017-11-12 10:52:03 · 337 阅读 · 0 评论 -
面向对象--抽象类
抽象类:当多个类中出现相同功能,但是功能主题不同,这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。例如:void study(){},抽取功能定义也即是:void study();此时需要用abstract修饰。抽象类的特点:1、抽象方法一定在抽象类中;2、抽象方法和抽象类都必须被abstract关键字修饰。3、原创 2017-11-10 11:39:29 · 185 阅读 · 0 评论 -
String、StringBuffer、与StringBuilder的区别
StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对String的改变都 会引发新的String对象的生成;StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象。既然可变和不可变都有了,为何还有一个StringBuilder呢?相信初期的你,在进行append时,一般都会选择StringBuffer...转载 2017-10-31 20:15:59 · 164 阅读 · 0 评论 -
子父类中构造函数
子父类中的构造函数:注:创建子类对象时,父类的构造函数也会运行。因为子类的构造函数默认第一行有一条隐式的语句,super();而super()会访问父类中空参数的构造函数。而且子类中所有的构造函数第一行默认都是supre();public class Demo30 { public static void main(String[] args){ Cat c=new Cat();原创 2017-11-08 09:37:59 · 323 阅读 · 0 评论 -
类的特点--继承
继承的优点:1、提高了代码的复用性。2、让类与类之间产生了关系,有了这个关系,才有了多态的特性。注意:不要为了获取其他类的功能,简化代码而继承,必须是类与类之间有所属关系才可以继承。java中的继承:1、java只支持单继承,不支持多继承。(因为多继承容易带来安全隐患。当多个父类定义了相同的成员,子类对象不确定运行哪一个。但java保留这原创 2017-11-05 16:00:55 · 588 阅读 · 0 评论 -
面向对象--单例设计模式(2)
单例设计模式的两种形式:1、饿汉式(即先初始化对象)(开发优先选择饿汉式)Singel类一进内存,就已经创建好了对象。public class Demo29 { public static void main(String[] args) { }}class Singel2{ private Singel2(){}//构造函数私有化 private stati原创 2017-11-07 11:34:51 · 162 阅读 · 0 评论 -
面向对象--设计模式
设计模式:解决某一类问题最行之有效的方法。java中有23种设计模式。单例设计模式:解决一个类在内存只存在一个对象。想要保证对象唯一:public class Demo28 { public static void main(String[] args) { Singel ss=Singel.getInstance(); }原创 2017-11-07 10:28:15 · 170 阅读 · 0 评论 -
面向对象--对象的初始化过程
对下面程序进行分析public class Demo27 { public static void main(String[] args){ Person6 p=new Person6("zhangsan", 23); }}class Person6{ private String name="WGS"; private int age; private st原创 2017-11-07 09:59:03 · 299 阅读 · 0 评论 -
java函数的重载
1、重载的概念在同一类中,允许存在一个以上的同名函数,只要他们的参数个数或参数类型不同即可。2、重载的特点与返回值类型无关,只看参数列表。3、重载的好处方便阅读,优化了程序设计。4、重载实例//返回两个整数的和int add(int x,int y){ return x+y;}//返回三个整数的和int add(int x,int y,int z){原创 2017-10-28 16:26:37 · 314 阅读 · 0 评论 -
类和对象的关系
类和对象:类:对现实生活中的事物的描述。对象:就是这类事物,实实在在存在个体。类具有三大特性:1、封装2、继承3、多态public class Demo17{ public static void main(String[] args){ //生产汽车,在java中通过new操作符来完成。 //其实就是在堆内存产生一原创 2017-11-03 11:05:03 · 469 阅读 · 0 评论 -
面向对象--final关键字
final:作为一个修饰符。final特点:1、可以修饰类,函数,变量。2、被final修饰的类不可以被继承。(为了避免被继承,被子类复写功能)public class Demo31 { public static void main(String[] args){ }}final class Demo{//此时,Demo被final修饰,不能被SubDemo原创 2017-11-08 10:46:06 · 128 阅读 · 0 评论 -
面向对象--内部类
内部类:将一个类定义在另一个类的里面,里面那个类就成为内部类(内置类,嵌套类)。内部访问特点:1、内部类可以直接访问外部类中的成员,包括私有成员。(因为内部类持有一个外部类的引用,格式为:外部类.this)2、外部类要访问内部类中的成员必须要建立内部类的对象。public class Demo49 { public static void m原创 2017-11-18 10:39:08 · 151 阅读 · 0 评论