Java基础
java基础
yorkmass☭
个人邮箱 yaoyi@tobsion.com
展开
-
手写Synchronized锁
package interview;import sun.misc.Unsafe;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.locks.LockSupport;public class MyLock { private volatile int state=0; private Thread lockHolder; private ConcurrentLi.原创 2021-04-07 14:22:37 · 330 阅读 · 1 评论 -
Java正则表达式
Java.util.regex包匹配规则:从左到右依次匹配\为转义字符我们要匹配字符串“a&c” 正则表达式编写为"a\&c",转为java字符串还要加上一个\转义为“a\\&c"如果匹配“a和c",非ASCII字符--和字需要用\u###表示为”a\u548cc".可以匹配任意一个字符,占位\d可以匹配一个数字\w可以匹配一个字母、数字...原创 2020-03-14 23:40:16 · 395 阅读 · 1 评论 -
Collections工具类之排序
CollectionsCollections:是集合框架的工具类里面的方法都是静态的例子:比较器package cn.itcast.p2.comparator;import java.util.Comparator;public class ComparatorByLength implements Comparator<String> { @Over...原创 2019-02-26 17:03:35 · 161 阅读 · 0 评论 -
练习:获取字符串中每个字母出现的次数
获取字符串中每个字母出现的次数Java代码:package cn.itcast.p1.map.test;import java.util.Iterator;import java.util.Map;import java.util.TreeMap;/* * 练习: * "fdgavcbsacdfs" 获取该字符串中,每一个字母出现的次数。 * 要求打印结果是:a(2)...原创 2019-02-26 12:45:41 · 350 阅读 · 0 评论 -
集合的一些技巧总结
集合总结集合的一些技巧:需要唯一吗?需要:Set 需要制定顺序: 需要: TreeSet 不需要:HashSet 但是想要一个和存储一致的顺序(有序):LinkedHashSet不需要:List 需要频繁增删吗? 需要:LinkedList 不需要:ArrayLis...原创 2019-02-25 16:40:08 · 199 阅读 · 0 评论 -
泛型接口的实现
泛型接口的实现过程package cn.itcast.p4.generic.define.demo;public class GenericDefineDemo5 { /** * @param args */ public static void main(String[] args) { InterImpl in = new InterImpl(); in.sh...原创 2019-02-24 18:57:38 · 5299 阅读 · 0 评论 -
Java笔记之泛型
泛型: jdk1.5出现的安全机制。 好处: 1,将运行时期的问题ClassCastException转到了编译时期。 2,避免了强制转换的麻烦。<>:什么时候用?当操作的引用数据类型不确定的时候。就使用<>。将要操作的引用数据类型传入即可. 其实<>就是一个用于接收具体引用数据类型的参数范围。 在程序中,只要...原创 2019-02-24 18:12:59 · 120 阅读 · 0 评论 -
TreeMap的基本使用
TreeMap内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。方法一:让对象类实现Comparable接口,覆盖comparaTo方法(略)方法二:比较器步骤:1、新建比较器:package cn.itcast.p3.comparator;import java.util.Comparator;import cn.itcast.p2.bean.Pe...原创 2019-02-24 11:37:24 · 1036 阅读 · 0 评论 -
以对象为键存储到Map集合中
将学生对象和学生的归属地通过键与值存储到map集合中示例:Person类package cn.itcast.p2.bean;public class Person implements Comparable<Person> { private String name; private int age; public Person() { super...原创 2019-02-24 11:17:32 · 947 阅读 · 0 评论 -
泛型的限定(上下限)
泛型上下限的理解?均表示接收的对象上限:接收,用上限<? extend T>collection<? extend T> colle 用来接收对象,这里接收的对象是未知对象。理解:只要是T或者T的子类,,就可以接收就可以使用这个方法,如:T是Person,那么他的子类Student\Worker都可以使用这个方法?是待定类型,T是已知类型下限:...原创 2019-02-26 18:04:54 · 1204 阅读 · 0 评论 -
Java GUI的基本使用
布局,窗口,按钮监听事件package Test1;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener...原创 2019-04-01 11:57:33 · 248 阅读 · 0 评论 -
Java中(entity)实体类的书写规范
在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法。entity(实体类)的作用一般是和数据表做映射。所以快速写出规范的entity(实体类)是java开发中一项必不可少的技能。 在项目中写实体类一般遵循下面的规范: 1、根据你的设计,定义一组你需要的私有属性。 2、根据这些属性,创建它们的se...原创 2019-05-16 20:56:27 · 1347 阅读 · 0 评论 -
Java基础_网络通讯UDP
SocketSocker就是为网络服务提供的一种机制 通信的两端都有Socket 网络通信其实就是Socker间的通信 数据在两个Socker间通过IO传输UDP传输DatagramSocket与DatagramPacket 建立发送端,接收端 建立数据包 调用Socket的发送接收方法 关闭Socket发送端与接收端是两个独立的运行程序UDP发送端packa...原创 2019-08-14 21:27:44 · 103 阅读 · 0 评论 -
Java聊天小程序演示_UDP网络通讯
Java网络通讯接收端package cn.itcast.net.p2.udp;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UDPReceDemo2 { /** * @param args * @throw...原创 2019-08-14 21:41:50 · 179 阅读 · 0 评论 -
Java基础_TCP网络传输
TCP传输(可靠数据传输)建立连接,形成传输数据的通道 在连接中进行大数据量传输 通过三次握手完成连接,是可靠协议 必须建立连接,效率会稍低Client(客户端)package cn.itcast.net.p4.tcp;import java.io.IOException;import java.io.OutputStream;import java.net.Socket...原创 2019-08-15 19:04:48 · 186 阅读 · 0 评论 -
Java_UpLoad上传图片案例
客户端package cn.itcast.net.p1.uploadpic;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.net....原创 2019-08-15 20:32:17 · 307 阅读 · 0 评论 -
Java基础_反射机制
Java反射机制_以Tomcat为例Java反射机制是在运行状态中,对任意一个类(class文件),都能知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。动态获取类中信息,就是java反射可以理解为对类的解刨。package cn.itcast.reflect....原创 2019-08-17 20:19:38 · 116 阅读 · 0 评论 -
Java基础_正则表达式
Java正则表达式package cn.itcast.regex.demo;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexDemo2 { /** * @param args */ public static void main(String[] args)...原创 2019-08-18 13:53:02 · 101 阅读 · 0 评论 -
Java笔记之Map集合
Map集合Map:一次添加一对元素。Collection 一次添加一个元素。 Map也称为双列集合,Collection集合称为单列集合。 其实map集合中存储的就是键值对。 map集合中必须保证键的唯一性。 常用方法:1,添加。 value put(key,value):返回前一个和key关联的值,如果没有返回null.2,删除。...原创 2019-02-23 17:56:28 · 111 阅读 · 0 评论 -
集合框架之TreeSet集合
TreeSet集合会对元素进行排序,自然顺序排列(如abcd...xyz),SET集合都保证了元素的唯一性。TreeSet集合:可以对Set集合中的元素进行排序。是不同步的。 判断元素唯一性的方式:就是根据比较方法的返回结果是否是0,是0,就是相同元素,不存。 TreeSet对元素进行排序...原创 2019-02-22 20:17:17 · 356 阅读 · 0 评论 -
Java 接口、接口的实现,以及同继承的区别详解
接口什么是接口? 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口interface定义接口使用的关键字不是class,是interface.对于接口当中常见的成员:而且这些成员都有固定的修饰符1、全局常量:public static final2、抽象方法: public abstract由此得出结论,接口中的成员都是公共的权限。...原创 2018-10-04 18:34:46 · 2275 阅读 · 1 评论 -
public/private/protected/默认(friendly)的区别解释
什么都不写默认为friendly在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。下图同包:包括子类和非子类1.首先是public修饰符来修饰的函数,是指这个函数可以被其他的类来调用,也可以被自己类里的函数来调用。2.再看protect...原创 2018-10-04 19:05:55 · 294 阅读 · 0 评论 -
Java笔记之多态的详解
Java多态——提高代码的拓展性简单说:就是一个对象对应着不同类型多态在代码中的体现:父类或者接口的引用指向其子类的对象。Animal a =子类对象;能调用父类里面子类共有的方法或者变量。多态的好处:提高了代码的扩展性,前期定义的代码可以使用后期的内容。多态的前提:1、必须有关系、继承、实现2、要有覆盖 abstract class Animal{ ...原创 2018-10-05 23:35:53 · 186 阅读 · 2 评论 -
Java笔记之内部类、匿名内部类详解
内部类内部类访问特点:1、内部类可以直接访问外部类中的成员2、外部类要访问内部类,必须建立内部类的对象class Outer{ private int num=3; class Inner //内部类 { void show() { System.out.println("show run..."+...原创 2018-10-07 19:12:31 · 188 阅读 · 0 评论 -
Java小技巧自动生成注释、api文档以及Java官方的api规范(中文版)
JavaTM Platform Standard Edition 6API 规范中文版网址:http://tool.oschina.net/apidocs/apidoc?api=jdk-zhcmd 命令 javadoc的使用需要中文版API文档,关注微信公众号:摸鱼科技资讯 回复:api 即可获取。首先你得安装好java以及配置好环境变量,能在cmd里面运行jav...原创 2018-10-07 12:31:58 · 1934 阅读 · 0 评论 -
Java笔记之异常详解
异常:是在运行时期发生的不正常情况 在Java中用类的形式对不正常情况进行了描述和封装对象描述不正常情况的类,就称为异常类以前正常流程代码和问题处理代码相结合现在将正常流程代码和问题处理代码分离,提高阅读性。 其实异常就是java通过面向对象的思想将问题封装成了对象用异常类对其进行描述。不同的问题用不同的类进行具体的描述。比如角标越界、空指针等等。问题很多,意味...原创 2018-10-10 00:31:00 · 151 阅读 · 0 评论 -
Java笔记之多线程详解
进程:正在进行中的程序(直译)线程:就是进程中一个负责程序执行的控制单元(执行路径)一个进程中可以多执行路径,称之为多线程一个进程中至少要有一个线程开启多个线程是为了同时运行多部分代码每一个线程都有自己运行的内容,这个内容可以称为线程要执行的任务。多线程的好处:解决了多部分同时运行的问题多线程的弊端:线程太多会导致效率的降低其实应用程序的执行都是cpu在做着快速的切...原创 2018-10-12 21:28:32 · 180 阅读 · 1 评论 -
多线程中wait和sleep区别
wiat和sleep的区别?1、wait可以指定时间也可以不指定 sleep必须指定时间。2、在同步中,对cpu的执行权和锁的处理不同wait:释 放执行权,释放锁。sleep:释放执行权,不释放锁。class Demo{ void show () { synchronize(this) { ...原创 2018-10-29 17:37:05 · 207 阅读 · 0 评论 -
eclipse自动提示设置方法和优化(去除空格自动补全)
Eclipse自动提示设置我们打开Eclipse配置自动提示,点击window--Preferences界面首先配置java文件的自动提示点击java--Editor--Content Assist,把Auto activation triggers for Java里面的内容改为:.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW...原创 2019-01-17 15:00:48 · 22346 阅读 · 10 评论 -
Java笔记之动态代理
为什么要用动态代理?•代码混乱:越来越多的非业务需求(日志和验证等)加入后, 原有的业务方法急剧膨胀. 每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点.•代码分散: 以日志需求为例, 只是为了满足这个单一需求, 就不得不在多个模块(方法)里多次重复相同的日志代码. 如果日志需求发生变化, 必须修改所有模块.问题:普通代码: ArithmeticCalculator接...原创 2019-01-18 18:06:09 · 88 阅读 · 0 评论 -
Java笔记之String类
按照面向对象的思想对字符串进行功能分类。 "abcd"1,获取:1.1 获取字符串中字符的个数(长度). int length();1.2 根据位置获取字符。 char charAt(int index); 1.3 根据字符获取在字符串中的第一次出现的位置. int indexOf(int ch) int indexOf(int ch...原创 2019-02-01 22:46:03 · 180 阅读 · 0 评论 -
Java笔记之StringBuffer
StringBuffer StringBuffer:就是字符串缓冲区。用于存储数据的容器。特点: 1,长度的可变的。 2,可以存储不同类型数据。 3,最终要转成字符串进行使用。 4,可以对字符串进行修改。既然是一个容器对象。应该具备什么功能呢?1,添加: * StringBuffer append(data); * ...原创 2019-02-02 01:14:59 · 165 阅读 · 0 评论 -
Java笔记之基本数据类型对象包装类
基本数据类型对象包装类基本数据类型对象包装类。为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。基本数据类型取值范围unsigned int 0~4294967295int -2147483648~2147483647unsigned long 0~4294967295...原创 2019-02-03 17:41:09 · 256 阅读 · 0 评论 -
Java笔记之对一个字符串中数值大小进行排序
对一个字符串中的数值进行从小到大的排序例子:"20 78 9 -7 88 36 29"返回一个字符串。基本思路:1,排序,我很熟。可是我只熟int。2,如何获取到这个字符串中的这些需要排序的数值? 发现这个字符串中其实都是空格来对数值进行分隔的。所以就想到用字符串对象的切割方法将大串变成多个小串。3,数值最终变成小字符串,怎么变成一个int数呢? 字符串-->基本类型 可以使用包...原创 2019-02-03 18:05:20 · 442 阅读 · 0 评论 -
Java笔记之集合框架(上)
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定。 就使用集合容器进行存储。 集合特点:1,用于存储对象的容器。2,集合的长度是可变的。3,集合中不可以存储基本数据类型值。 集合容器因为内部的数据结构不同,有多种具体容器。不断的向上抽取,就形成了集合框架。框架的顶层Collection接口:Collection的常见方法:...原创 2019-02-16 18:08:57 · 148 阅读 · 0 评论 -
Java笔记之集合框架(下)
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定。 就使用集合容器进行存储。 集合特点:1,用于存储对象的容器。2,集合的长度是可变的。3,集合中不可以存储基本数据类型值。 集合容器因为内部的数据结构不同,有多种具体容器。不断的向上抽取,就形成了集合框架。框架的顶层Collection接口:Collection的常见方法:...原创 2019-02-22 18:08:26 · 138 阅读 · 0 评论 -
用LinkedList来模拟一个队列
请使用LinkedList来模拟一个堆栈或者队列数据结构。堆栈:先进后出 First In Last Out FILO队列:先进先出 First In First Out FIFO我们应该描述这样一个容器,给使用提供一个容器对象完成这两种结构中的一种。以队列为例Duilie类package cn.itcast.p2.linkedlist.test;import java....原创 2019-02-17 19:33:05 · 314 阅读 · 0 评论 -
Java 单例设计模式、继承与抽象类的理解
JAVA继承:子类凭什么叫父类爹?因为写了extends子类实例化的时候访问父类中的构造函数在子类构造对象时,发现访问子类构造函数时,父类也运行了,为什么呢?原因:在子类的构造函数中第一行有一个默认的隐式语句。super();子类的实例化过程:子类中所有构造函数默认都会访问父类中的空参数的构造函数。为什么子类实例化的时候要访问父类中的构造函数呢?那是因为子类继承了父类,...原创 2018-09-30 22:44:56 · 343 阅读 · 0 评论