
Java入门
文章平均质量分 60
主要学习Java基础语法
TALKDATA
非科班转行大数据开发和Java后端方向
展开
-
(五)Java入门--内部类
一、内部类访问特点内部类可以直接访问外部类的内容,但是外部类要想访问内部类,必须建立内部类的对象。二、内部类的修饰符内部类可以修饰为static,那里面访问外部类的变量必须是static的。 1、若内部类不加static,则相当于外部类的成员。(Out.In a = new Out().new In();) 2、若内部类加上static,外部类就不要建立对象进行访问了...原创 2017-11-13 21:57:17 · 268 阅读 · 0 评论 -
(九)Java入门--多线程(5)线程通信--多生产者多消费者
代码实例(参考代码:TreadCom3.java)/*多生产者多消费者生产一个馒头就消费一个馒头两个线程生产馒头,两个线程消费馒头*/class Resource3 { //公共资源 private String name; private int count = 0; private boolean flag = false; pri...原创 2018-02-19 12:26:41 · 216 阅读 · 0 评论 -
(九)Java入门--多线程(6)多生产多消费--JDK1.5新特性
一、锁与监视器1、Lock用面向对象的思想,用Lock对象显性锁替换了原来的synchronized的隐性锁。 代码示例: Lock l = new ReentrantLock(); l.lock(); //获得锁 try { // 需要同步的代码 } finally { l.unlock()...原创 2018-02-19 12:28:43 · 192 阅读 · 0 评论 -
(九)Java入门--多线程(7)多线程的总结与扩展
一、多线程总结1、多线程的创建:继承Thread方法或者实现Runnable接口。 2、多线程的状态:创建、运行、冻结。临时阻塞、消亡等。 3、多线程安全问题的产生:多线程操作共享数据的代码有多条。 4、多线程安全问题的解决:同步函数或者同步代码块。 5、多线程的死锁产生原因:同步锁的嵌套。 6、线程间的通信:等待唤醒机制、多生产多消费者、Lock与Condition。...原创 2018-02-19 12:54:36 · 283 阅读 · 1 评论 -
(十)Java入门--String类
一、字符串的创建1、String s = “abc”; //创建一个字符串对象“abc”在常量池中。 2、String s1 = new String(“abc”); //创建两个对象,一个new对象和一个字符串对象在堆内存中。 3、注意: (1)字符串对象一旦初始化就不会被改变。(是指等号右边,左边是引用变量)。 (2)字符串常量池中数据是共享的,一旦有所需字符串就不会重复...原创 2018-02-19 13:00:57 · 205 阅读 · 0 评论 -
(十一)Java入门--StringBuffer类
一、StringBuffer类特点–字符串缓冲区1、长度是可变的; 2、可以存放不同类型的数据; 3、最终将整合的数据以字符串输出; 4、可以对字符串修改。二、StringBuffer类功能–增删改查1、添加 (1)append(data) :在缓冲区中添加数据,从尾部追加。 (2)insert(index,data):在指定位置插入数据。 2、删除 (3)d...原创 2018-02-19 13:39:34 · 324 阅读 · 0 评论 -
(十二)Java入门--基本数据类型对象包装类
一、主要作用–基本类型<–>字符串类型1、基本类型–>字符串类型 推荐使用加“”的方式。 int i= 123; System.out.println(""+i+4); //输出字符串 1234 System.out.println(String.valueOf(123)+4);//输出字符串 12342、字符串–>基本类...原创 2018-02-19 13:52:21 · 227 阅读 · 0 评论 -
(十三)JAVA入门--集合Collection和迭代器Iterator
一、集合与Collection1、概念:对对象进行存储,如果对象个数不确定,就出现了集合容器进行存储。 2、特点: (1)用于存储对象的容器; (2)集合的长度是可以变化的; (3)集合中不可以存储基本数据类型值。 3、集合框架 集合容器因为内部的数据结构不同,有多种具体容器,不断向上抽取,就形成了集合框架。框架的顶层就是Collection接口。 4、Collectio...原创 2018-04-08 14:03:12 · 176 阅读 · 0 评论 -
(十四)JAVA入门--Collection的子类接口List
一、List特点1、List有序(存入和取出顺序一致),有索引,元素可重复。Set元素不重复。 2、相对于Collection,除了增删查,扩展了位置索引和修改数据。二、listIterator迭代器1、特点:除了iterator的功能外,还有自己特定的listIterator功能。(因为iterator不允许在遍历操作过程中修改或添加数据,所以有了自己的listIter...原创 2018-04-08 14:04:07 · 190 阅读 · 0 评论 -
(十五)JAVA入门--Collection的子类接口Set
一、Set特点1、元素不可以重复,无序。 (1)HashSet:内部数据结构是哈希表,不同步。(HashSet是无序的,但是他的子类LinkedHashSet是有序的,怎么存进去,怎么读出来,用了链表连接) (2)TreeSet:可以对Set中的元素进行排序,不同步。元素是以二叉树的形式存放的。二、HashSet的使用1、哈希算法(HashCode) 给一个元素,通过...原创 2018-04-19 10:01:05 · 238 阅读 · 0 评论 -
(十六)JAVA入门--泛型Generic
一、泛型概念1.将运行时期的问题(类型转换异常)转到了编译时期,避免了强制转换的麻烦。 2.泛型技术是给编译器使用的技术,用于编译时期,确保类型安全。运行时,会将泛型去掉,生产的class文件中不带泛型,这叫泛型的擦除(为什么擦除吗?为了兼容类加载器。) 3.泛型补偿:在运行时,通过获取元素的类型进行转换动作,不用使用者再强制转换了。个人理解:泛型就用一个符号或者具体对象指定了各种...原创 2018-04-19 10:01:31 · 246 阅读 · 0 评论 -
(九)Java入门--多线程(4)线程通信--等待唤醒机制
一、涉及的方法1、wait():让线程处于冻结状态,被wait的线程会被存储到线程池中。 2、notify():唤醒线程池中的一个线程(任意)。 3、notiyAll():唤醒线程池中的所有线程。二、注意事项1、以上涉及的方法都必须定义在同步内; 2、因为这些方法都是用于操作线程的状态,必须要明确到底是操作哪个锁上的线程。 3、为什么操作线程的方法是定义在objec...原创 2018-02-19 12:23:16 · 213 阅读 · 0 评论 -
(四)Java入门---多态
一、多态概念一个对象对应着不同的类型。比如,猫这类事物既具备着猫的形态,又具备着动物的形态。二、代码体现父类或者接口的引用指向子类的对象。(一种对象两种形态,子类和父类的形态)三、多态的理解多态存在为了什么呢?简单的例子,有一个方法,就是动物吃饭的方法,多态的存在,就可以让只要是动物,就可以调用,比如猫、狗等,就不需要单独去制作猫吃饭的方法,所以,提高了代码的扩...原创 2017-11-09 19:41:24 · 195 阅读 · 0 评论 -
(三)Java入门---抽象类和接口
一、抽象类概念抽象类(abstract)是对类的抽象,里面可以包含抽象方法(只有声明,没有具体的实现),也可以包含正常类的变量,抽象类不能实例化,抽象类是为了子类继承而存在的,子类必须继承父类的抽象方法。二、抽象类的相关问题子类必须覆盖抽象类中的所有抽象方法,才能进行实例化(否则,子类里面还有继承父类的抽象方法,所以子类是抽象函数,就不能实例化)。 1、抽象类有构造...原创 2017-11-07 10:53:25 · 339 阅读 · 0 评论 -
(七)Java入门---包
一、包(package)概念如果两个类名称一样,可以使用包的概念,进行多层命名空间。进行类的全称:包名.类名(相当于文件夹内放了一个类)。 建立包:放在内容的第一行。package 包名(包名一般小写)。二、包与包之间的访问1、包中类和方法必须是public(继承有protected修饰方法); 2、使用或者访问时要带上包名.类名; 3、包与包之间进行继承,父类必须带...原创 2018-02-19 12:08:17 · 232 阅读 · 0 评论 -
(一)Java入门--面向对象和类的概念
JAVA语言三大技术框架JAVAEE(企业版)、JAVASE(标准版)、JAVAME(小型版)JRE、JDK利用JDK进行程序开发,交给JRE去执行。JVM因为JAVA虚拟机的存在,JAVA具有跨平台的特性。函数1、函数的重载(overload):在同一个类中,允许存在一个以上的同名函数,只要参数个数或者参数类型不同即可。 2、函数的覆盖(over...原创 2017-11-05 22:03:04 · 225 阅读 · 0 评论 -
(二)Java入门--继承
一、继承的概念继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。二、成员变量1、子类存在就不找父类;子类不能直接访问父类的私有变量(但可以间接使用get函数访问); 2、super关键字:相对于this来说,this是指向自身类中变量,super是指向父类中的变量。 3、图中父子继承内存关...原创 2017-11-05 23:10:44 · 229 阅读 · 0 评论 -
(六)Java入门--异常
一、异常概念1、异常:在运行时期发生的不正常的情况。 2、异常类:描述不正常的类 3、将各个异常类的共性向上抽取,形成异常体系。 4、最终不正常的情况就分为两个类。 5、一个超类Throwable,下面有两个子类Error、Exception,每个子类下面还有很多子类。(一个爷爷,有两个儿子,每个儿子还有许多小孩。) 6、Throwable(可抛性):将问题抛出让调用者知...原创 2018-02-19 12:04:28 · 196 阅读 · 0 评论 -
(八)Java入门--单例设计模式
一、概念保证一个类在内存中的对象唯一性。(单个实例设计模式)、 (在堆中只有一个对象;方法区保存着构造函数和公有方法等。)二、设计步骤(1)私有化该类的构造函数(private) (2)在本类中创建一个本类对象(private static)或者在方法中创建。 (3)定义一个公有的方法,将创建的对象返回(public static)。三、代码样例1、懒汉式...原创 2018-02-19 12:10:31 · 190 阅读 · 0 评论 -
(九)Java入门--多线程(1)概念与实现
一、进程与线程概念(1)进程:直译-正在进行的程序(本质上,在内存里面开辟了一片运行空间)。 (2)多线程:进程中的一个负责程序执行的路径,可以有多个路径,就叫多线程。(一个进程当中至少有一个线程。) (3)任务:每一个线程都有自己运行的内容,这个内容就是线程要执行的任务。 (4)多线程的优劣:一方面,解决了多个部分同时运行的问题(实际上,是cpu在多个线程之间切换完成的,这个切...原创 2018-02-19 12:17:51 · 169 阅读 · 0 评论 -
(九)Java入门--多线程(2)安全问题
一、多线程安全问题产生原因1、多个线程在操作共享的数据。 2、操作共享数据的代码有多条。 总之,多个线程同时执行操作共享数据的多行代码。二、两种同步方法解决安全隐患1、同步代码块解决安全隐患:(1)解决思想:就是将多条操作共享数据的代码封装起来。当一个线程处理这些封装代码,其他线程不得参与运算,必须当前线程执行完之后,才可以执行其他的线程。 (2)同步代码块格...原创 2018-02-19 12:19:30 · 179 阅读 · 0 评论 -
(九)Java入门--多线程(3)线程间通信实例
一、线程间通信概念多个线程处理同一资源,但是任务不同。二、线程间通信实例(参考代码:TreadCom1.java)1、说明:Input和Output表示两个线程处理的两个任务,但是二者共同处理同一资源。 2、代码:TreadCom1.java//线程之间没有通信,对于同一资源, 只是一边输入,一边输出。class Resourse { //公共资源 ...原创 2018-02-19 12:21:10 · 249 阅读 · 0 评论 -
(十七)JAVA入门--Map集合
一、Map特点Map<K,V>双列集合,存储的是键值对,必须保持键的唯一性。一个映射不能包含重复的键;每个键最多只能映射到一个值。(比如,一对夫妻Map<K,V>集合,中间的映射关系就是结婚证entrySet)。二、Map常用方法1、添加: v put(key, value):返回前一个和key关联的值,如果没有返回null。 2、删除: vo...原创 2018-04-19 10:01:46 · 236 阅读 · 0 评论