Java基础知识
Java基础知识
pudding_art
这个作者很懒,什么都没留下…
展开
-
Java集合框架(三)
在整个累计里面一共有以下几个核心接口:Collection\List\SetMapIterator\Enumeration类集就是Java数据结构的实现,类集就是动态对象数组Collection接口以及常用操作定义Collection是整个类集之中,单值保存的最大父接口。即:每一次可以向集合里面保存一个对象public interface Collection<E>...原创 2020-04-22 15:50:17 · 207 阅读 · 0 评论 -
Java复习之集合框架(二)
具体集合LinkedList链表是一个有序集合,每个对象的位置十分重要。add方法添加到链表的尾部,但是经常需要将元素添加到链表中间,由于迭代器描述了集合中的位置,所以这种依赖于位置的add方法由迭代器负责。实际上由于LinkedList和ArrayList都implements List所以LinkedList也实现了set/get方法,但是这两种方法的内部实现实际上是链表的遍历,效率很低(...原创 2020-04-22 08:31:59 · 124 阅读 · 0 评论 -
Java复习之集合框架(一)
注意擦除后的冲突为了支持擦除转换,倘若两个接口类型是同一接口的不同参数化,一个类或变量就不能同时作为这两个接口类型的子类。Java集合框架实现接口与实现分离public interface Queue<E>{void add(E element);E remove();int size();...} 每一个具体的类都要用implements Queue&l...原创 2020-04-18 17:43:53 · 141 阅读 · 0 评论 -
XML文档(一)
由于在现代开发过程中,不需要开发人员手动解析XML文档,因此本次课程的主要目的是了解xml文档以及,xml约束文档的内容XML编程语言可扩展编程语言两个特点:在编写命令上,以标签为单位实现就固定好的指令历史:诞生于1996年,在2004年进行一次更新。语法版本号升级1.1,现在用的是1.0xml文档的作用:最初xml文档是作为【网页】来使用的,后来被所有浏览器厂商抛弃,就...原创 2020-04-02 22:23:12 · 246 阅读 · 0 评论 -
Java网络编程(已经over了)
网络编程时代几乎是结束了,主要目的是为了阐述网络擦欧做的过程,因为这些过程,将直接影响到Java EE的项目开发1. 网络编程(简介)网络:是将物理上分开的主机进行连接所形成的交换区域所谓的网络编程指的就是服务器端与客户端编程的开发操作实现。但是在我们实际的工作下对网络的编程有两种形式:形式一:C/S结构(Client/Server)此类模式的开发一般要编写两套程序,一端属于客户端代...原创 2020-04-01 19:08:19 · 162 阅读 · 0 评论 -
Java线程的同步与死锁
线程的同步产生原因线程的同步处理操作线程的死锁1. 同步问题的引出同步指的是多个线程访问同一资源时需要了解的情况。非同步情况下的操作:package com.company;class MyThread implements Runnable{ private int ticket = 5; public void run(){ for(...原创 2020-04-01 16:32:52 · 140 阅读 · 0 评论 -
Java线程的常用操作方法
多线程有很多的方法定义,但是大多数方法都是在Thread类里面的 方法1.线程的命名和取得所有的线程的程序的执行每一次都是不同的运行结果,因为会根据自己的情况进行资源抢占,执行的顺序是不同的,那么如果要想区分每一个线程,就必须依靠线程的名字。对于线程的名字,一般而言会在启动之前进行定义,不建议为已经启动的线程更改名称,或者为不同的线程设置重名的情况。如果要想进行线程名称的操作,可以使用Thr...原创 2020-03-30 15:49:47 · 129 阅读 · 0 评论 -
Java多线程基础实现
1. 线程与进程Java是一门为数不多的多线程支持的编程语言。什么是进程?在操作系统的定义中,进程指的是一次程序的完整运行,在这个运行的过程中内存、处理器、IO等资源操作都要为这个进程进行服务。在最早的DOS时代,有一个特点:如果你电脑病毒发作了,那么你的电脑几乎就不能动了。因为所有的资源都被病毒软件所占用,其他程序无法抢占这个资源。到了Windows时代电脑中病毒了,电脑也可以运行(就是慢...原创 2020-03-30 14:28:01 · 156 阅读 · 0 评论 -
Java I/O缓冲输入流
缓冲输入流是在java中会被大量使用到的工具类,其目的是解决数据的乱码问题。现在最直观的解决方式就是System.in所带来的问题。如果要进行中文数据的处理,首先想到的是字符流,并且想要完整的处理数据需要到缓冲区,对于缓冲区的操作有两种流:在给出的缓冲区输入流中有两个,其中最为重要的是BufferedReader,因为在该类中有一个重要的读取方法。字符缓冲区输入流:BufferedReade...原创 2020-03-30 09:32:01 · 155 阅读 · 0 评论 -
System类对I/O的支持
学习目标:学完PrintStream(PrintWriter)类之后会发现里面的方法很熟悉了解一下System类中对于I/O操作的支持在System类中为了支持I/O操作,设置了三个常量err:错误输出in:从标准输入设备输入(键盘)out:输出到标准输出设备(显示器)错误输出System.err是PrintStream类对象,此对象专门负责进行错误信息的输出操作。...原创 2020-03-30 07:24:34 · 243 阅读 · 0 评论 -
Java打印流
打印流打印流属于整个Java开发过程中重要的组成概念现在已经清楚了InputStream和OutputStream两个类的基本使用,如果要进行输出,只能够使用OutputStream类来完成,但是这个类的使用输出是否方便?如果要用OutputStream输出数据,假设要输出的是String,需要将String变为字节数组后再输出,如果输出的是int需要将int变为字符串在变成字节数组输出,如...原创 2020-03-30 06:52:32 · 163 阅读 · 0 评论 -
Java I/O辅助概念
了解一下常见的字符编码了解乱码产生原因计算机所有的都是二进式形式,那么所有能够描述出的中文文字都是经过处理后的结果。在我们的计算机世界里所有的文字都是用编码来描述,例如最常见的编码是ASCII码GBK、GB2312:中文的国标编码,其中GBK包含简体中文和繁体中文两种,后面的只包含简体ISO8859-1:是国际编码,可以描述任何的文字信息;UNICODE:16进制编码UTF编码(...原创 2020-03-29 22:41:16 · 126 阅读 · 0 评论 -
Java字节流与字符流
File类虽然可以操作文件,但不是操作文件内容,如果要进行内容的操作只能够通过两种途径完成:字节流、字符流I/O操作基本操作如果要进行输入或输出操作,一般都会按照如下步骤进行(以文件操作为例):通过File类定义一个要操作文件的路径;通过字节流或字符流的子类对象为父类对象实例化;进行数据的读(输入),写(输出)操作;数据流属于资源操作,资源操作必须关闭;对于java.io包而言它...原创 2020-03-29 18:52:36 · 176 阅读 · 0 评论 -
Java文件
文件操作类(基本操作)在Java里面最麻烦的部分就是Java I/O,因为这里面所牵扯的父类和子类太多了,学习原则:抽象类中定义的抽象方法会根据实例化其子类的不同,执行不同的操作如果要进行所有的文件以及文件内容的开发操作,应该使用java.io包完成,而在此包中有5个核心类,一个核心接口:五个核心类:File InputStream OutputStream Reader Writer一...原创 2020-03-29 10:36:28 · 171 阅读 · 0 评论 -
Java反射
背景反射是面向对象开发框架中常用的一种技术,其基本思想是当程序运行时,能使用这种技术“动态”地查询任何一个对象的类型信息:这个类有几个字段、几个方法,特定的方法有几个参数,参数又是什么类型的,并且可以动态的创建任何一个对象并调用它的方法。Class类Class类是一种存储数据类型的相关信息的一种类型获取Class类实例的三种方式//the first one//直接用对象引用...原创 2020-03-26 20:14:46 · 168 阅读 · 0 评论 -
JDK中的主要集合类型
JDK中的对象集合,依据其实现的接口,大致上可分为四类:Set:无序,不可重复List:有序,可重复Map:具有映射关系的集合Queue:具有队列特性的集合JDK中集合相关的接口和类Collection是JDK中集合类型的上层接口,很多相关接口和集合类都派生自(或实现)它实际上是“对象组合”的编程方式,以基础集合类型为底层,向其中增加某些函数,构造出功能更加强大的新集合...原创 2020-03-23 22:13:21 · 463 阅读 · 0 评论 -
Java面向对象编程基本技能
学习目标本讲介绍了三种常见的面向对象编程场景:对象比较、对象组合、对象复制掌握这三种面向对象编程技巧,是进一步学习更复杂的(比如“设计模式”)编程技巧的基础对象比较施加于两个对象变量之上的“==”,实际上是判断这两个对象变量是否引用同一个对象在实际开发中,我们经常需要比对某两个对象的“内容“比如你已经有一个对象,想在另一个对象集合中找到是否有”内容一样“的对象这里所说的对象的”内...原创 2020-03-22 10:21:08 · 139 阅读 · 0 评论 -
Java虚拟机(一)Java虚拟机初步了解
Java virtual Machine官方简介The Java Virtual MachineJava虚拟机是Java平台的基石。是java实现硬件和操作系统的独立性(也就是无关性),生成极小体积的编译代码,以及保护用户免受恶意程序攻击的的关键技术组成部分。Java虚拟机是一种抽象计算机器。像真正的计算机一样,它有一个指令集以及在运行时各种内存区域。使用虚拟机实现编程语言是相当普遍的...原创 2020-03-22 10:20:05 · 811 阅读 · 0 评论 -
Java面向对象编程基本技能
对象比较对象组合对象复制将克隆功能嵌入到对象内部Object类提供了一个protected clone()方法,子类可将其定义为public的,从而向外界提供克隆自己的功能:protected Object clone()throws CloneNotSupportedException;Cloneable接口JDK中提供了一个Clo...原创 2020-03-20 13:19:29 · 126 阅读 · 0 评论 -
Java内部类
技术背景与C++不一样,Java从一开始就设计为一个“纯”面向对象语言,“一切皆为对象”基于这个理念,Java使用对象“封装一切”想象一个场景:一个类中包容许多方法和字段,有些方法和字段从逻辑上看具有比较紧密的联系,可以把它们“放在一块”,视为一个整体“。针对以上场景,Java设计了“内部类”这个机制什么叫内部类(inner class)?其定义直接包容于另一个类(或方法)内部...原创 2020-03-20 10:43:30 · 159 阅读 · 0 评论 -
Java异常处理基础
学习目标要想开发出健壮的应用,就必须认真掌握这部分知识。否则用户随时可以因为你程序中有未捕获的异常而对程序产生不满甚至立即卸载。认真地对待每一个示例,并且一定要亲自动手运行它们介绍了“捕获JDK异常转换为业务逻辑异常”的异常处理策略,这在多层应用中很有用过,需要特别注意...原创 2020-03-20 09:26:35 · 351 阅读 · 0 评论 -
Java泛型编程
学习目标重要性:JDK中广泛使用了泛型,泛型知识对掌握Java技术很重要Java在最初设计时是没有考虑要支持泛型的,只是后来随着Java应用越来越广,开发者有这个需求,才加入了泛型特性,但由于JVM不好改,所以javac编译器对泛型代码采用了“擦除”的方式进行编译,这是Java泛型技术的重要特点Java泛型包容太多的语法特性,显得比较混乱,学习难度较大。Java泛型编程技术比较复杂,你...原创 2020-03-20 06:49:58 · 220 阅读 · 0 评论 -
Java:理解多态
学习目标了解多态相关的面向对象编程特性,理解多态在软件开发中的用处关键是理解相关概念,将抽象的知识感性化原创 2020-03-19 18:51:57 · 146 阅读 · 0 评论 -
Java:抽象类与接口
学习目标关键是要理解抽象基类与接口特性被引入的必要性原创 2020-03-19 08:59:35 · 84 阅读 · 0 评论 -
Java中的继承
学习注意虽然知识看上去看淡,但实际上并没有看上去那么简单。战略上藐视敌人,战术上重视敌人。一定要动手试验,积极进行技术探索原创 2020-03-19 08:27:46 · 96 阅读 · 0 评论 -
Java正则表达式编程基础
学习目的1、在开发中经常遇到它,灵活地使用正则表达式,可以减轻编写很多字符串处理任务代码的工作负担。2、在找工作时,你很可能会在笔试试题中看到有关正则表达式的内容3、编程语言中的正则表达式,与编译原理中词法分析部分的内容有很多关联,学好它,“提前打个招呼,认识一下”,有助于学好许多学生“畏之如虎”、“头大如斗”的那门计算机专业课——编译原理。作业里两个项目需要掌握的Java技术第一个...原创 2020-03-19 07:07:25 · 530 阅读 · 0 评论 -
Java中的数组
学习目标"数组"是一种很基础但又极为重要的数据结构。几乎所有的编程语言对数组操作提供了支持。 Java中的数组既拥有数组普遍的特性: 比如按下标访问,元素连续存放等,也有它自己的特色,比如使用一维数组实现多维数组,数组可以是不整齐的等等。本讲围绕“数组”这一核心内容而展开,重点是**引用类型数组的内存布局模型**。本讲还包容了不少与数据结构相关的练习,完成它们,不仅可以训练自己的Java...原创 2020-03-16 07:15:40 · 170 阅读 · 0 评论 -
Java中的字符串
字符与字串字符:‘Z’,’\n’等,按UNICODE进行编码字符串:“Hello”,“(201)13423422”等String:Java中它是一个引用类型。String类型的变量可以引用一个“字符串String”对象String的构造方法String提供了9种构造方法import javax.swing.*;public class welcome1 { public ...原创 2020-03-16 00:49:04 · 171 阅读 · 0 评论 -
包与组件化开发
包的概述Java中的可复用软件资源以包的形式提供每个包都针对某个领域:如网络,GUI(用户图形界面)等包中存放了彼此在功能上互补的类包类似于C++中等namespace为何要引入包?解决类的同名问题便于代码复用与维护JDK的各个组件,都是以包的形式提供的图中每个“方块”,都代表着一个特定的技术领域,而每个领域都包容着若干个包,每个包中,包容若干个类和接口常见的包...原创 2020-03-15 21:14:18 · 222 阅读 · 0 评论 -
Java中的类和对象
学习目标本讲主要介绍如何在Java中设计和使用类的基础知识,包括:类的初始化方法,“==”的含义,this的用法,装箱与拆箱,……其中,理解对象变量的含义是关键。本讲还介绍了javap反汇编.class文件的基本方法。 在课堂上会引导大家阅读Java字节码指令。本讲属于Java面向对象编程最为基础的内容,必须牢固掌握。编写类的“模版”public/private class ...原创 2020-03-15 19:43:11 · 185 阅读 · 0 评论 -
Java中的时间
早期Java版本早期JDK使用Date类来表示一个日期,之前推荐使用Calendar类Calendar代表一个抽象的日历,我们常用的公历由其子类GregorianCalendar表示通常我们用Calendar.getInstance()方法获得一个默认的日历对象月份的起始值是0而不是1Calendar的容错性默认情况下,Calendar会自动“向上”增加日期值,比如设置月份13会...原创 2020-03-15 15:56:39 · 105 阅读 · 0 评论 -
Java中的方法
软件工程模块化原则Modules(模块):将一个复杂的系统划分为子模块,便于设计、实现和维护Java中的程序模块:方法、类、包Java程序中最基本的构造单元是类,而类中最重要的单元是方法Java模块化实例:JDK中的Math类java.lang.Math类提供了通用的数学方法,这些方法都是静态方法,可以用类名.方法名直接调用、静态导入从JDK5.0开始,支持一种称为“静态导入”的...原创 2020-03-14 22:40:19 · 100 阅读 · 0 评论 -
Java语法基础
标识符定义Java常量的常用数据类型各进制下的数值:10(十进制)=0xA(16进制)=012(8进制)Java中的基本数据类型独立于各平台整型 :byte(8) short(16) int(32) long(64)浮点型:float(32) double(64)使用科学记数法定义浮点值123.456=1.23456e+2布尔型:true,false字符型:‘a’,’A‘字符...原创 2020-03-14 21:27:22 · 174 阅读 · 0 评论 -
Java Application基础
Java项目类型Java可以开发多种类型的项目,每种类型的项目都有特定的应用场景Java Application(Java入门程序)是最简单的一种Java中的标识符尽量不要用$打头,在Java中美元符一般用于标识内部类生成的.class 文件其实并不是只能有一个public class如果把一个public class定义在公有类之内也可以,只是不能在公有类之外再在同一个clas...原创 2020-03-14 16:31:59 · 1578 阅读 · 0 评论 -
Java技术家族
Java技术家族中的四个成员Java SE (Standard)Java ME (micro)Java FXJava EE(enterprise)Java SE1、Java standard edition2、Java技术平台的核心与基础3、包容Java核心库,提供基础类型和各种可重用的类及组件4、JDK中包容有JVM和相应的开发工具Java ME1、Java Micro e...原创 2020-03-14 09:50:28 · 335 阅读 · 0 评论 -
Eclipse初步
Eclipse简介1、eclipse是一个使用Java开发的Java IDE,最初由Object Technologies International公司开发,后被IBM收购,最后转为开源软件,成为业界使用最广泛的软件开发工具之一2、eclipse拥有一个基于插件的系统架构,功能扩充比较容易,有大量的团队和个人为其开发各种功能的插件,已经构成一个“生态系统”(Eco-system)定义...原创 2020-03-14 08:55:45 · 120 阅读 · 0 评论 -
Java导论
Native就是原生,原生就是来自系统自己的,原汁原味的东西动态链接库动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。这些库函数的扩展名是 ”.dll"、".ocx"(包含ActiveX控制的库)或者 “.drv”(旧式的系统驱动程序)。总结重点:...原创 2020-03-14 08:13:15 · 224 阅读 · 0 评论 -
Java学习笔记(四)
容器List1、ListArray实现了容量大小可变得数组,具有数组快速存储的优点,同时容量又可以动态变化,所以ArrayList又称为“动态数组”。ArrayList的优缺点也是线性表的优缺点import java.util.ArrayList;public class Test { public static void main(String args[]) { Array...原创 2020-03-10 09:45:36 · 425 阅读 · 0 评论 -
Java学习笔记(二)
Java中一切都是对象。所有的函数,变量,常量都必须在一个类里定义。这本来很好,很完美的规定。但是Java在一开始设计的时候,出于性能上的考虑,却留下了一道口子:primitive类型,我们在开发中也常称为值类型,或者干脆按字面意思翻译为基础类型或者原始类型。primitive类型中包括:byte int char short int long float double boolen为了满足强...原创 2020-03-09 01:09:19 · 135 阅读 · 0 评论 -
Java学习笔记(一)
在知乎上看到一篇文章讲解Java中的这两个关键字,原文????:https://zhuanlan.zhihu.com/p/24373135面向对象是一种编程思想这个我知道,C语言不是面向对象的编程语言,Java、C++是面向对象的编程语言我也知道,但是我就是没想过为什么?今天才能描述出来:面向对象的语言是指编程语言提供了一种机制,使我们可以用比较简洁的语法表达数据的抽象和封装。PostgreSQL这...原创 2020-03-08 16:23:55 · 115 阅读 · 1 评论