![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
cwl_java
这个作者很懒,什么都没留下…
展开
-
Java基础-Java中为什么字段不能被重写
先让我们看一下下面这个例子,新建两个Sub对象,一个指向Sub类型的引用,一个指向 Super类型的引用。输出的结果如下:我们创建了两个Sub对象,但是为什么第二个对象打印出来的结果是"Super"呢?隐藏字段代替了重写在java官方提供的tutorial有一段关于隐藏字段的明确定义:Within a class, a field that has the same name as...原创 2020-03-18 14:01:12 · 453 阅读 · 0 评论 -
Java基础-JDBC
JDBC概述JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问它由一组用Java语言编写的类和接口组成有了JDBC,程序员只需用JDBC API写一个程序,就可以访问所有数据库。将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写 一遍程序就可以让...原创 2019-11-12 20:18:46 · 567 阅读 · 1 评论 -
Java基础-注解和反射操作注解
注解Annotation是从JDK5.0开始引入的新技术。Annotation的作用:不是程序本身,可以对程序作出解释。(这一点,跟注释没什么区别)可以被其他程序(比如:编译器等)读取。(注解信息处理流程,是注解和注释的重大区别 。如果没有注解信息处理流程,则注解毫无意义)Annotation的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如: @Supp...原创 2019-11-12 19:25:05 · 457 阅读 · 0 评论 -
Java基础-类加载器和核心机制
类加载机制JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成 JVM可以直接使用的Java类型的过程。将Java类的二进制代码合并到JVM的运行状态之中的过程验证: 确保加载的类信息符合JVM规范,没有安全方面的问题。准备: 正式为类变量(static变量)分配内存并设置类变量初始值的阶段,这些内存都将在方法区中进行分配解析: 虚拟机常量池内的符号引用替换为...原创 2019-11-12 16:40:00 · 380 阅读 · 0 评论 -
Java基础-脚本引擎
JAVA脚本引擎是从JDK6.0之后添加的新功能。脚本引擎介绍:使得 Java 应用程序可以通过一套固定的接口与各种脚本引擎交互,从 而达到在 Java 平台上调用各种脚本语言的目的。Java 脚本 API 是连通 Java 平台和脚本语言的桥梁。可以把一些复杂异变的业务逻辑交给脚本语言处理,这又大大提高了开发效率。获得脚本引擎对象脚本引擎执行JavaScript代码Java ...原创 2019-11-12 09:13:02 · 346 阅读 · 1 评论 -
Java基础-反射机制
Java动态性反射机制动态编译动态执行javascript代码动态字节码操作动态语言程序运行时,可以改变程序结构或变量类型。典型的语言:Python、ruby、javascript等。如下javascript代码:C, C++, JAVA不是动态语言,JAVA可以称之为“准动态语 言”。但是JAVA有一定的动态性,我们可以利用反射机制、 字节码操作获得类似动态语...原创 2019-11-11 22:29:50 · 209 阅读 · 0 评论 -
Java基础-动态编译
动态编译动态编译的应用场景:可以做一个浏览器端编写java代码,上传服务器编译和运行的在线评测系统。服务器动态加载某些类文件进行编译动态编译的两种做法:通过Runtime调用javac,启动新的进程去操作 Runtime run = Runtime.getRuntime(); Process process = run.exec("javac -cp d:/myjava/ He...原创 2019-11-11 22:18:40 · 306 阅读 · 0 评论 -
Java基础-网络编程
计算机网络计算机网络定义计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路 连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享 和信息传递的计算机系统计算机网络定义分析主干:计算机网络是计算机系统网络功能:资源共享 信息传递网络组成:网络硬件:计算机 外部设备 通信线路 (连接)网络软件:网络操作系统 网络管理软件 网...原创 2019-11-11 18:25:16 · 779 阅读 · 2 评论 -
Java基础-多线程(三)
线程通信应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取 走消费如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品 被消费者取走为止如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再 次放入产品为止分析这是一个线程同步问题,生产者和消费者共享同一个资源,并且生...原创 2019-11-11 17:41:38 · 462 阅读 · 1 评论 -
Java基础-多线程(二)
线程控制方法Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程。线程调度器 按照线程的优先级决定应调度哪个线程来执行。线程的优先级用数字表示,范围从1到10Thread.MIN_PRIORITY = 1Thread.MAX_PRIORITY = 10Thread.NORM_PRIORITY = 5使用下述方法获得或设置线程对象的优先级。int getPrio...原创 2019-11-11 13:50:45 · 305 阅读 · 0 评论 -
Java基础-多线程(一)
程序、进程与线程程序Program:程序是一段静态的代码,它是应用程序执行的蓝本进程Process:进程是指一种正在运行的程序,有自己的地址空间进程的特点动态性并发性独立性并发和并行的区别多个CPU同时执行多个任务一个CPU(采用时间片)同时执行多个任务线程Thread:进程内部的一个执行单元,它是程序中一个单一的顺序控制流程。线程又被称为轻量级进程(ligh...原创 2019-11-11 11:56:39 · 325 阅读 · 0 评论 -
Java基础-IO流
流的原理在Java程序中,对于数据的输入/ 输出操作以“流” (stream) 方式进 行;J2SDK提供了各种各样的“流”类, 用以获取不同种类的数据;程序 中通过标准的方法输入或输出数 据。Java的流类型一般位于java.io包中数据源data source. 提供原始数据的原始媒介。常见的:数据库、文件、其他程序、内存、网络连接、IO设备。数据源就像水箱,流就像水管中...原创 2019-11-10 16:33:11 · 398 阅读 · 1 评论 -
Java基础-集合(二)
迭代器Iterator所有集合类均未提供相应的遍历方法,而是把把遍历交给迭代器完成。迭代器为集 合而生,专门实现集合遍历Iterator是迭代器设计模式的具体实现Iterator方法boolean hasNext(): 判断是否存在另一个可访问的元素Object next(): 返回要访问的下一个元素void remove(): 删除上次访问返回的对象。问题:可以使用Ite...原创 2019-11-10 16:09:04 · 260 阅读 · 0 评论 -
Java基础-集合(一)
Java集合集合架构Collection 接口存储一组不唯一,无序的对象List 接口存储一组不唯一,有序(索引顺序)的对象Set 接口存储一组唯一,无序的对象Map接口存储一组键值对象,提供key到value的映射Key 唯一 无序value 不唯一 无序List特点:有序 不唯一(可重复)ArrayList 线性表中的顺序表在内存中分配连续的空间,实...原创 2019-11-08 18:01:43 · 324 阅读 · 1 评论 -
Java基础-异常机制
异常( Exception 也称例外)就是在程序的运行过程中所发生的不正常的事件,它会中 断正在运行的程序所需文件找不到网络连接不通或中断算术运算错 (被零除…)数组下标越界装载一个不存在的类或者对null对象操作类型转换异常……当Java程序出现以上的异常时,就会在所处的方法中产生一个异常对象。这个异常对象 包括异常的类型,异常出现时程序的运行状态以及对该异常的详细描述。...原创 2019-11-08 15:44:16 · 299 阅读 · 0 评论 -
Java基础-常用类(三)
Math类包含了常见的数学运算函数。random() 生成[0,1)之间的随机浮点数生成:0-10之间的任意整数:int a = (int)(10*Math.random());生成:20-30之间的任意整数:int b = 20 + (int)(10*Math.random());枚举只能够取特定值中的一个使用enum关键字所有的枚举类型隐性地继承自 java.lang.En...原创 2019-11-08 13:59:58 · 286 阅读 · 0 评论 -
Java基础-常用类(二)
String的常用方法char charAt(int index)返回字符串中第index个字符。boolean equals(String other)如果字符串与other相等,返回trueboolean equalsIgnoreCase(String other)如果字符串与other相等(忽略大小写),则返回trueint length() 返回字符串的长度。String re...原创 2019-11-08 11:58:00 · 313 阅读 · 0 评论 -
Java基础-常用类(一)
基本数据类型的包装类为什么需要 包装类(Wrapper Class)?JAVA并不是纯面向对象的语言。Java语言是一个面向对象的语言,但是Java中的基本数据类型却 是不面向对象的。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如: 集合的操作中。 这时,我们就需要将基本类型数据转化成对象!包装类均位于java.lang包,包装类和基本数据类型的对应关系:...原创 2019-11-08 09:33:20 · 326 阅读 · 0 评论 -
Java基础-数组
数组的基本概念数组是相同类型数据的有序集合.相同类型的若干个数据,按照一定先后次序排列组合而成。其中,每一个数据称作一个数组元素每个数组元素可以通过一个下标来访问它们.数组特点其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。数组中的元素可以是任何数据类型,包括基本类型和引用类型。备注:数组属引用类型创建数组一...原创 2019-11-07 16:16:29 · 602 阅读 · 1 评论 -
Java基础-面向对象(五)
引用变量的两种类型:编译时类型(模糊一点,一般是一个父类)由声明时的类型决定。运行时类型(运行时,具体是哪个子类就是哪个子类)由实际对应的对象类型决定。多态的存在要有3个必要条件:要有继承,要有方法重写,父类引用指向子类对象引用数据类型的类型转换子类转换为父类:自动转换上转型对象不能操作子类新增的成员变量和方法。上转型对象可以操作子类继承或重写的成员变量和方法如果子类重...原创 2019-11-07 14:05:41 · 301 阅读 · 0 评论 -
Java基础-面向对象(四)
super关键字super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。继承父类方法的重写:“==”:方法名、形参列表相同。= “≤≤”:返回值类型和异常类型,子类小于等于父类。“≥”:访问权限,子类大于等于父类构造方法调用顺序:根据super的说明,构造方法第一句 总是:super(…)来调用父类对应的构造方法。先向上追溯到Obje...原创 2019-11-07 14:04:39 · 255 阅读 · 0 评论 -
Java基础-面向对象(三)
面向对象的三大特征继承 inheritance子类 父类子类可以从父类继承属性和方法子类可以提供自己单独的属性和方法封装/隐藏encapsulation对外隐藏某些属性和方法对外公开某些属性和方法多态 polymorphism为了适应需求的多种变化,使代码变得更加通用!面向过程只有封装性(功能的封装,而没有数据的封装),没有继承和多态封装(encapsu...原创 2019-11-07 10:35:52 · 315 阅读 · 0 评论 -
Java基础-面向对象(二)
局部变量和成员变量区别声明位置不同 类中 方法中作用范围不同: 当前类的方法 当前方法不同的方法中即使有同名的局部变量,没有关系,互不影响,建议相同内存存放的位置的:栈内存中 堆内存中成员变量有默认值;局部变量没有默认值引用类型Java语言中除基本类型之外的变量类型都称之为引用类型Java中的对象和数组是通过引用对其操作的.引用可以理解为一种受限的指针指针是可以...原创 2019-11-07 10:25:32 · 267 阅读 · 0 评论 -
Java基础-面向对象(一)
面向对象编程初步 (OOP:Object Oriented Programming)对象和类的概念对象:是具体的事物 小明/小红类:是对对象的抽象(抽象 抽出象的部分)Person先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。类和对象的总结类:class。对象:Object, instance(实例)。以后我们说某个类的对象,某个类的实例。是一样...原创 2019-11-07 09:59:59 · 438 阅读 · 0 评论 -
Java基础-方法
什么是方法封装在一起来执行操作语句的集合,用来完成某个功能操作在某些语言中称为函数或者过程特殊的方法main,程序执行的入口public static void main(String [ ] args){实现功能的语句}不可能所有的功能都放到main中,需要定义其他方法完成指定功能,需要时调用方法即可定义方法中文示例[修饰符] 方法返回值类型 方法名(形参列表 ...原创 2019-11-06 18:00:14 · 235 阅读 · 0 评论 -
Java基础-多重循环
三种循环方式whiledo-whilefor多重循环(循环嵌套)一个循环体内又包含另一个完整的循环结构任何两种循环都可以相互嵌套可以任意层次循环,但是一般不超过3层多重循环执行过程外层循环变量变化一次,内层循环变量要变化一遍package com.cwl.base.day02;/** * @program: java_base * @description:...原创 2019-11-06 17:55:05 · 514 阅读 · 0 评论 -
Java基础-跳转语句
break和continue在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环, 不执行循环中剩余的语句。(break语句还可用于多支语句switch中)continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的 语句,接着进行下一次是否执行循环的判定。代码示例测试循环语句中的breakpackage com.cwl.ba...原创 2019-11-06 17:51:13 · 631 阅读 · 0 评论 -
Java基础-循环语句
while循环在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于 后来每一次额外的循环,都会在开始前重新计算一次。语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。循环结构都由如下四个结构组成: 初始化、条件判断、循环体、迭代代码示例package com.cwl.base.day02;/** * @program: java_b...原创 2019-11-06 15:09:43 · 292 阅读 · 0 评论 -
Java基础-条件语句
if单分支选择结构代码示例package com.cwl.base.day02;/** * @program: java_base * @description: 测试if单选择结构 * @author: ChenWenLong * @create: 2019-11-06 14:10 **/public class TestIf { public static ...原创 2019-11-06 14:30:35 · 314 阅读 · 0 评论 -
Java基础-基本数据类型之间的转换
在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换转换方式:自动转换强制转换除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型。算术运算时的转换整型,浮点型,字符型数据可以混合运算。运算中相邻两个操作数先转化为同一类型,转换从低级到高级,然后进行运算;运算的结...原创 2019-11-06 10:59:06 · 516 阅读 · 0 评论 -
Java基础-运算符(二)
位运算符位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结果 也为int代码示例package com.cwl.base.day01;/** * @program: java_base * @description: 位运算符 * @author: Che...原创 2019-11-06 10:48:27 · 357 阅读 · 0 评论 -
Java基础-运算符(一)
Java 语言支持如下运算符:算术运算符: +,-,*,/,%,++,–赋值运算符 =扩展赋值运算符:+=,-=,*=,/=关系运算符: >,<,>=,<=,==,!=逻辑运算符: &&,||,!位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)条件运算符 ?:相关概念辨析...原创 2019-11-06 10:46:13 · 356 阅读 · 0 评论 -
Java基础-常量和变量
常量变量定义在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变, 有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量。变量举例在2D游戏程序中,需要代表人物的位置,则需要2个变量,一个是x坐标,一个是y坐标,在程序 运行过程中,这两个变量的值会发生改变常量举例代表常数,便于程序的修改(例如:圆周率的值)增强程序的可读性(例...原创 2019-11-06 10:20:37 · 374 阅读 · 0 评论 -
Java基础-基本数据类型
Java是一种强类型语言常量是有数据类型的变量都必须声明其数据类型原创 2019-11-06 09:59:12 · 255 阅读 · 0 评论 -
Java基础-字符集简介
ASCII英文字符集 1个字节ISO8859-1西欧字符集 1个字节BIG5台湾的大五码,表示繁体汉字 2个字节GB2312大陆使用最早、最广的简体中文字符集 2个字节GBKGB2312的扩展,可以表示繁体中文 2个字节GB18030最新GBK的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符 2个字节Unicode国际通用字符集 2个字节...原创 2019-11-06 09:57:45 · 343 阅读 · 0 评论 -
Java基础-关键字/保留字
Java关键字是Java语言保留供内部使用的,如class用于定义类。 关键字也可以称为保留字, 它们的意思是一样的。原创 2019-11-06 00:17:02 · 279 阅读 · 1 评论 -
Java基础-标识符Identifier
作用常量、变量、方法、类和包等的名称命名规则必须以字母、_下划线、美元符$开头。其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合大小写敏感,长度无限制。不可以是Java的关键字。注意Java不采用通常语言使用的ASCII字符集Java采用unicode这样的标准的国际字符集。因此,这里的字母的含义: 英文、汉字等等。(不建议大家使用汉字来定义标识符!)代码...原创 2019-11-05 16:30:20 · 982 阅读 · 1 评论 -
Java基础-注释
作用注释就是程序员为读者作的说明,是提高程序可读性的一种手段类型// 单行注释 注释内容从//到本行结尾/* / 多行注释 / */ 注释不能嵌套/** */文档注释 可以通过JDK提供的Javadoc命令,生成程序的API文档(面向对象编程时再讲)注意注释不会出现在字节码文件中。即Java编译器编译时会跳过注释语句。代码示例package *;/** * @prog...原创 2019-11-05 16:26:53 · 413 阅读 · 0 评论 -
Java基础-HelloWorld
代码编写public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World !"); }}保存为:Welcome.java编译阶段(编译器创建class字节码文件 )进入java文件所在目录,执行命令:javac We...原创 2019-11-05 16:24:01 · 254 阅读 · 0 评论 -
Java基础-Java跨平台原理
Java跨平台原理Java为什么能够流行外部环境互联网的爆发式发展互联网上的电脑硬件不同,软件环境差异较大。需要一 个跨平台的语言。Java核心优势:跨平台总结1:Java运行过程Java程序的运行分为两步:先编译再解释执行通过“编译器”将Java源程序编译成Java 字节码文件(.class)(字节码文件采用结构中立 的中间文件格式)通过不同的“虚拟机”将Java字节...原创 2019-11-05 15:47:11 · 469 阅读 · 0 评论