Java 基础总结(二)】的更多相关文章

java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者特殊功能的关键词,不能用着标识符 3.注释 java代码中不会编译,帮助介绍代码的文字片段 三种注释方式,分别是单行注释(//).多行注释(/* */)和文档注释(/** */) 4.基本数据类型 基本类型有以下四种: int长度数据类型有:byte(8bits).short(16bits).int…
java基础(二章) 一,变量 1.变量是内存中的一个标识符号,用于存储数据 2.变量命名规则 l  必须以字母.下划线 _ .美元符号 $ 开头 l  变量中,可以包括数字 l  变量中,不能出现特殊的符号,空格 l  java中的关键字(红色字体),不能做变量名 3.变量命名,遵循 骆驼命名法(变量由1个以上的单词组成,第1个单词首字母小写,后面单词的首字母大写) 二, 数据类型 a)        数字(整型int(整数).双精度浮点型double(小数)) b)        字符型(c…
Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println(f.num);//是父类,答案是3 2,成员函数(非静态). 编译看左边,运行看右边. 因为成员函数存在覆盖特性. Fu f = new Zi();//f.show();输出的是子类里面的show方法 3,静态函数. 编译和运行都看左边. 静态函数不具备多态性,多态性是对象的多态性,然后静态函数不涉…
java基础-多线程二 继承thread和实现Runnable的多线程每次都需要经历创建和销毁的过程,频繁的创建和销毁大大影响效率,线程池的诞生就可以很好的解决这一个问题,线程池可以充分的利用线程进行任务调度,重复利用 1. 线程池Executor与Executors Executor为concurrent包下的线程顶级接口,提供了一个execute方法,参数为Runnable的实例 void execute(Runnable command); Executors负责创建不同功能的线程池,线程…
JAVA基础(二)-- 常用的类与方法 1 Math类 abs ceil floor 绝对值 大于等于该浮点数的最小整数 小于等于该浮点数的最大整数 max min round 两参数中较大的 两参数中较小的 四舍五入,算法为 Math.floor(x+0.5) pow sqrt random 指数 算术平方根 随机数,在[0,1)间,取整int()即可 exp log en In(n) 找数组中max/min: int a[] = {10,5,8}; int min = Arrays.stre…
目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什么是值传递和引用传递? 5.Java的访问修饰符是什么? 6.Java 基础数据类型有哪些? 7.hashCode()和equals()方法的重要性体现在什么地方? 8.switch 中用于判断的表达式,可以用哪些数据类型? 9. char型变量中能不能存贮一个中文汉字?为什么? 10.静态变量和实…
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定义: 所谓泛型,就是允许在定义类.接口.方法时使用类型形参,这个类型形参(或叫泛型)将在声明变量.创建对象.调用方法时动态地指定(即传入实际的类型参数,也可称为类型实参).Java5改写了集合框架中的全部接口和类,为这些接口.类增加了泛型支持,从而可以在声明集合变量.创建集合对象时传入类型实参. 2…
前言 为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握 lambda 表达式,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 lambda 表达式 Java8 是我们使用最广泛的稳定 Java 版本,lambda 就是其中最引人瞩目的新特性.lambda 是一种闭包,它允许把函数当做参数来使用,是面向函数式编程的思想,可以使代码看起来更加简洁.是不是听得一脸懵逼?我举个栗子你就明白了. 烂掉牙的例子,在没有 lambda…
Clone在Java中就是用来复制对象,通过分配一个和源对象相同大小的内存空间,然后创建一个新的对象,那么他和=的区别在哪? 通过=实现对象拷贝: @Data @NoArgsConstructor @AllArgsConstructor @ToString public class Student implements Cloneable{ private int id; private String name; private int sex; @Override protected Obje…
二维数组 Java里的二维数组其实是数组的数组,即每个数组元素都是一个数组. 每个数组的长度不要求一致,但最好一致. // 同样有两种风格的定义方法 int[][] _arr21_推荐 = { { 1, 2 }, { 3 } }; int arr22[][] = { { 1, 2 }, { 3 } }; // 另外还有一种刁钻的写法,据说在面试题中出现过 int[] arr23[] = { { 1, 2 }, { 3 } }; 二维数组的初始化: int[][] _arr21 = { { 1,…
第三章 面向对象   时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思想  心得: 与以往的各种语言的根本不同的是,它的设计出发点就是为了更能直接的描述问题域中客观存在的事务   一个面向过程的设计思想和面向对象的设计思想的不同的例子 例如:我要去新疆 面向过程:我开车,挂挡,踩油门,到河北....... 面向对象: 我命令去新疆,车怎么去不关我事( 信息封装在车的类…
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一章  JAVA简介   时间:2017年4月24日10:23:32 章节:01章_02节 内容:jdk的配置与安装 完成情况:已经完成,cmd中javac提示出相关命令   时间:2017年4月24日10:30:39 章节:01章_04节 内容:输出HelloWorld 完成情况: 已经完成 jav…
HashMap实现原理分析 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1):数组的特点是:寻址容易,插入和删除困难: 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N).链表的特点是:寻址困难,插入和删除容易. 哈希表 那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的…
一.线程的优先级别…
1.进程和线程的区别:线程是轻量级的,本省不会持太多资源,需要的时候向进程申请 2.线程的状态:创建,可执行,执行中,等待,休眠,阻塞 3.线程状态之间的转换 4.线程API:Thread类,Runnable类,Object类的wait/notify方法 5.线程同步控制:同步方法,同步代码块 6.等待唤醒机制 7.线程间通信 1.进程和线程的区别 2.线程创建方式-继承Thread 线程创建的两种方式: 方式一:继承Thread类 自定义类继承Thread,并复写父类中的run(),将线程运行…
在谈论到反射这个问题时,你是否有例如以下疑问? 不管是在.NET还是Java中反射的原理和机制是一样的,理解了一种还有一种就能够迎刃而解,想要理解反射首先须要了解底层的一些概念和执行.理解了反射有助于你理解程序的执行原理,眼下非常多框架(java..NET)中都引入了反射这一个技术,反射事实上也不是什么新的技术仅仅是几个不同的操作过程集成到一起关联起来了. 从表面上我们看到的效果是这种:通过传入一个字符串能够得到某个类的对象,在这一个过程中做了非常多事情.你是否有以下的一些疑问存在?      …
一.数组的概念 定义: 数组是存储同一种数据类型的多个元素的集合. 数组既可以存储基本数据类型,也可以存储引用数据类型. 格式: 格式1: 数据类型[] 数组名; 格式2: 数据类型 数组名[]; 这样定义完了,但是数组中是没有元素的,我们必须对数组进行初始化. 二.数组的初始化 Java数组必须先初始化,然后才能使用.所谓的初始化就是为数组的元素分配内存空间,并为每个数组元素赋值. 动态初始化: 初始化时只指定数组的长度,由系统为数组分配初始值. 静态初始化: 初始化时指定每个数组元素的初始值…
第七章 容器   时间:2017年4月27日15:08:30 章节:07章01节~07章04节 视频长度:20:21 +12:38 +3:55 +2:57 内容:容器API 心得: Java API 所提供的一系列类的实例,用于在程序中存放对象 JDK所提供的容器API 位于java.util包内 结构如下图     一个关于new 集合的问题 Collection c =new ArrayList(); 这是父类指向子类对象 不能访问arraylist里面所独有的 好处是 如果以后如果要变更数…
第六章 常用类   时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:28+8:28 内容:String 心得: String代表不可变的字符序列 关于String的不可变 之前第3章关于final的整理中有专门提到 这里补充一点小知识   如果是直接2个字符串+ 用string没问题  比如String s= "haha" +"hello"…
第五章 数组 时间:2017年4月26日15:11:30~2017年4月26日15:15:54 章节:05章_01节  视频长度:09:30 内容:一维数组的内存分析 心得: Java中数组是引用类型 栈里面存的数组的引用 实际对象在堆内存里面 (C与C++是分配在栈里的) 内存图:   元素为引用数据类型的数组 引用类型的数组如上图   时间:2017年4月26日15:16:22~2017年4月26日15:19:00 章节:05章_02节  视频长度:05:25 内容:数组元素的创建与使用 心…
第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下划线,$,数字组成,应该由字母,下划线$开头,同时应该避开java保留字符   变量是内存中的一小块区域,使用变量名来访问这块区域   执行过程中的内存管理(疑问:这里的内存和Jvm的一样吗?) code segment 存放代码 data segment 静态变量 字符串常量 stack 栈 局部…
第一讲     File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不可变的:也就是说,一旦创建,File 对象表示的抽象路径名将永不改变 4)File对象可以作为参数传递给流的构造函数 二.File对象创建 方式一: File f =new File("a.txt"); 将a.txt封装成File对象.可以将已有的和未出现的文件或者文件夹封装成对象. 方式…
一.连接池 在实际的开发应用中,我们常常会对数据库进行大量的高并发的访问,而最原始的连接和操作方式并不能满足这种大量的访问,程序员为了追求更方便.更快捷.更科学安全的开发.第三方的工具类和Dao层的框架就应运而生了.DBCP连接池.和C3P0连接池就是2个常见的开源数据库连接池. 在与数据库进行交互的过程中,获得连接"和"释放资源"是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection.这样我们就不需要每次都创建连接.释…
面向对象基础知识 面向对象是相对面向过程而言的 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象 面向对象是基于面向过程的 面向对象的特征: 封装 继承 多态 java中用类Class来描述事物: 属性:对应类中的成员变量 行为:对应类中的成员函数 成员变量 成员变量定义在类中,在整个类中都可以被访问 成员变量随着对象的建立而建立,存在于对象所在的堆内存中 成员变量有默认初始化值 局部变量 局部变量之定义在局部范围内,如函数内 局部变量存在…
一.java基本数据类型: 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间.内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java 的两大数据类型:1.内置数据类型:2.引用数据类型. 1.内置数据类型: Java语言提供了八种基本类型.六种数字类型(四个整数型:byte.short.int.long,两个浮点型:float.double),一种字符类型:char,还有一种布尔型:boolean. Java中还存在另外一种基本类型v…
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.   题目代码 import java.util.Scanner; /** * 题目描述 * 在一个二维数组中(每个一维数组的长度相同), * 每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序. * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该…
20.1 并发得多面性 并发编程令人困惑的一个主要原因:使用并发时需要解决的问题有多个,而实现并发的方法也有多种,并且在这两者之间没有明显的映射关系. 20.1.1 更快的执行 速度问题初听起来很简单:如果你需要一个程序运行得更快,那么可以将起断开为多个片段,在单个处理器上运行每个片段. 并发通常是提高运行在单个处理器上的程序的性能,但在单个处理器上运行的并发程序开销确实应该比该程序所有部分都顺序执行开销大,因为其中增加了所谓的上下文切换的代价. 如果没有任务会阻塞,那么在单处理器上使用并发就没…
一.RandomAccessFile类 使用RandomAccessFile类可以读取任意位置数据的文件. 1.构造方法 RandomAccessFile(String name, String mode) RandomAccessFile(File file, String mode) 其中“mode”表示:r(只读).rw(可读写).rws(同步写入).rwd(更新同步写入) 2.常用方法 3.示例代码 package jun.iplab.RandomAccessFile; import j…
字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出流的父类,它定义了操作输出流的各种方法. 二.InputStreamReader类与OutputStreamWriter类 1.InputStreamReader是字节流通向字符流的桥梁.它可以根据指定的编码方式,将字节输入流转换为字符输入流. (1)构造方法有两种: InputStreamRead…
字节流是以字节为单位来处理数据的,由于字节流不会对数据进行任何转换,因此用来处理二进制的数据. 一.InputStream类与OutputStream类 1.InputStream类是所有字节输入流的父类,它定义了操作输入流的各种方法. 2.OutputStream类是所有字节输出流的父类,它定义了输出流的各种操作方法. write(byte[] bytes) // 将byte[]数组中的数据写入到当前输出流 write(bytep[ bytes, int off, int len) // 将b…