- 浏览: 66411 次
文章分类
最新评论
-
小灯笼:
ZooKeeper分布式专题与Dubbo微服务入门网盘地址:h ...
dubbo+zookeeper构建高可用分布式集群 -
qingfengxiu1985:
有没有全部工程代码?发一个呗,邮箱:qingfengxiu19 ...
mongodb+spring +morphia完整版框架搭建
今天复习了一下,以前的学习笔记。把曾经使用过的基本类,java基础过了一遍,简单的理解了一下,开发中可能能用到的。
基本概念:
对象初始化过程:先在栈分配空间,就是初始话局部变量,然后执行new 操作 在堆里分配空间,成员变量默认初始话,显示初始话,局部变量只能显示初始话,然后调用构造函数。还有常量池或者叫方法池一般常量方法放在里面。
成员变量和局部变量的区别?
A:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
注意事项:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
break和continue区别:
break是直接跳出循环
continue是跳出本次循环执行下一次循环
this和super区别:
this是指本类,本对象,super是指父类,父对象
while和do while区别,以及for for和while可能一次都不执行,do while至少会执行一次。for(;;)只要有两个分号,语句就是对的。只是死循环,注意写代码时候避免死循环,一般我这些用的比较少,foreach用的比较多用来遍历列表输出。
if if else switch 三目运算符:if else 主要用于区间判断 swicth case 主要用于等值判断,注意一般别忘了写break 除非有需求的时候。三目运算符:if else 简单替换方法:
表达式?表示1:表达2 如果表达式为true 返回表达1结果。如果为false 返回表示2结果。表达式只有两种选择true 或者false。
== 判断值是否相等,Equals 一般判断引用地址是否相等。他们都可以判断值是否相等。
修饰符:private 私有 一般用于封装,本类可以访问。默认(friendly)本类和同包可以访问,protected 本类 同包 子类 public 本项目
static 静态的主要作用就是为了共享数据,静态方法,静态变量,静态代码块,属于类,在jvm加载的时候就执行了,并且只执行一次。静态方法可以直接通过类名调用,不需要new
final:1,修饰变量,要求变量只能被赋值一次 2,修饰类,要求该类不能被其他类继承 3,修饰方法 ,要求该方法不能被继承(重写)
@Override和@Overload 重写用于子类对父类的方法重写,继承中。实际开发中,用的比较多,一般是重写接口抽象方法,面向接口编程。重载同一个类中方法名相同,参数列表不同,用的也多,一般根据传的数据不懂,写不同的方法 1,比如参数数量一致,类型不能一样
2,比如参数数量一致,类型一样,顺序一定不能一样。
封装:简单理解目的就是为了,代码安全性,以及少写代码。也便于我们开发,不需要考虑具体实现的细节,只需要一个我们想要的对象就可以。封装隐藏一些代码内部实现细节,提供一些公用的方法方法。比如getter setter 方法,jdk中的类,方法,和框架都是封装实现的
继承:为了分类管理,父类一般拥有所有子类的一些共同属性,或者功能,只是子类中具体的实现方法可能不一样。满足is a 条件下使用继承,抽象方法(子类必须实现的方法),抽象类(不能实列话)
多态:同一个引用类型,使用不同的实例而执行不同操作,简单理解一个人会写代码,会演讲,等当他扮演不同的角色的时候,执行不同的操作。
接口:用来替代抽象类,接口可以多继承(抽象类只能单继承),所有方法都是抽象方法,不能被实例化,所有的成员变量都是静态常量
包装类:[/size]主要目的是为了我们方面使用包装类里面的一些基本方法,常见的类型转换valueof(),自动装箱:jvm自动将一个基本类型,自动帮我们转换成一个引用类型,自动拆箱:将一个引用类型自动转换成基本类型。byte ---> Byte
short ---> Short
int ---> Integer
long ---> Long
float ---> Float
double ---> Double
boolean --->Boolean
char --->Character
在实际开发中定义类型,基本都用包装类。
[size=large]基本类:
statck 类堆栈得使用:常用方法:pop()移除堆栈顶部对象,并返回改对象。peek(),查看堆栈顶部的对象,但不从堆栈中移除它,search()表示以 1 为基数,距离堆栈顶部的距离,如果现实为-1表示此对象不再堆栈中。empty()判断是否为空。push(),将对象加入堆栈顶部。
字符String Stringbuffer(多线程安全)用于字符串拼装 StringBuidder(单线程)一般不用
日期Date ,日历Calender ,随机数,Random,数学类 math.Arrays类提供对数组的方法,排序,查询sort(a)数组名
异常处理 :声明(throws):抛出:直接在方法中调用:throw new Ex();
用try将可能会出异常的代码括起来,catch进行处理,catch可以有多个,finally 表示只要进入try,无论执行不执行catch都会执行finally里面的代码,即便含有return也会执行。
错误信息:error 程序员无论为力的错误,看JDK api
常见的异常:
ArithmeticException:算术错误情形,如以零作除数,ArrayIndexOutOfBoundsException:数组下标越界,NullPointerException:空指针 InputMismatchException:欲得到数据类型与实际输入类型不匹配 NumberFormatException:数字格式转换异常,如把"abc"转换成数字 IllegalArgumentException:方法接收到非法参数 ClassCastException:对象强制类型转换出错
ClassNotFoundException:类没找到。异常处理两种形式:可以抛出或者自己处理,一般选择自己处理,如果实在处理不了,才抛出 ExceptionInInitializerError - 如果该方法激发的初始化失败,LinkageError - 如果链接失败,IllegalAccessException - 如果该类或其 null 构造方法是不可访问的,InstantiationException - 如果此 Class 表示一个抽象类、接口、数组类、基本类型或 void; 或者该类没有 null 构造方法; 或者由于其他某种原因导致实例化失败。
集合框架JCF:
接口结构:collection :
list不唯一,有序,常用的add,remove,get等等方法,查API仔细看。实现类ArrayList(遍历,随机访问时效率比较高)LinkedList(插入,删除时效率比较高,额外提供了关于头部和尾部的 添加,获取,删除方法。)Stack 后进先出 lifo (last in first out)
set唯一,无序,实现类HashSet iterator遍历对象.如果用法忘记了看API讲的很详细,去重,原理重写hashCode equals两个方法,可以自定义去重。TreeSet
去重复, 并且可以按照某种顺序排序 TreeSet的add方法会将对象转为Comparable, 然后调用compareTo方法, 所以存储在TreeSet中的对象必须实现Comparable, 重写compareTo方法,Integer能排序(有默认顺序), String能排序(有默认顺序), 自定义的类存储的时候出现异常(没有顺序) queue先进先出 fifo (first in first out)应用场景:排队,发送邮件,发送短信,工作。
Map键值对:
比较重要的方法,keySet(),values,实现类HashMap 线程不安全
允许空值,HashTable 线程安全不允许空值
集合迭代:iterator
泛型集合:作用:指定集合只能存放某一种类型元素,使运行时异常提前到编译时异常。
IO 流:
file类:用于文件和文件夹操作的类,一般要实现Serializable可序列化接口,在网络中传输数据流,都要实现序列化。
字节流:InputStream输入流(FileInputStream,ObjectInputStream(读写对象需要实现可序列),ByteArrayInputStream,DataInputStream(用于8中基本数据的传输))OutputStream.
字符流:Reader输入(BufferedReader,InputStreamReader,FileReader)writer输出(除了对应的还有一个PrintWriter),以及他们的子流,用的时候看API 一般要什么就给他什么就好了。
http://blog.csdn.net/hguisu/article/details/7418161介绍的很详细,想仔细研究的话可以去看。其他的内容太多,就单独分类吧
基本概念:
对象初始化过程:先在栈分配空间,就是初始话局部变量,然后执行new 操作 在堆里分配空间,成员变量默认初始话,显示初始话,局部变量只能显示初始话,然后调用构造函数。还有常量池或者叫方法池一般常量方法放在里面。
成员变量和局部变量的区别?
A:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
注意事项:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
break和continue区别:
break是直接跳出循环
continue是跳出本次循环执行下一次循环
this和super区别:
this是指本类,本对象,super是指父类,父对象
while和do while区别,以及for for和while可能一次都不执行,do while至少会执行一次。for(;;)只要有两个分号,语句就是对的。只是死循环,注意写代码时候避免死循环,一般我这些用的比较少,foreach用的比较多用来遍历列表输出。
if if else switch 三目运算符:if else 主要用于区间判断 swicth case 主要用于等值判断,注意一般别忘了写break 除非有需求的时候。三目运算符:if else 简单替换方法:
表达式?表示1:表达2 如果表达式为true 返回表达1结果。如果为false 返回表示2结果。表达式只有两种选择true 或者false。
== 判断值是否相等,Equals 一般判断引用地址是否相等。他们都可以判断值是否相等。
修饰符:private 私有 一般用于封装,本类可以访问。默认(friendly)本类和同包可以访问,protected 本类 同包 子类 public 本项目
static 静态的主要作用就是为了共享数据,静态方法,静态变量,静态代码块,属于类,在jvm加载的时候就执行了,并且只执行一次。静态方法可以直接通过类名调用,不需要new
final:1,修饰变量,要求变量只能被赋值一次 2,修饰类,要求该类不能被其他类继承 3,修饰方法 ,要求该方法不能被继承(重写)
@Override和@Overload 重写用于子类对父类的方法重写,继承中。实际开发中,用的比较多,一般是重写接口抽象方法,面向接口编程。重载同一个类中方法名相同,参数列表不同,用的也多,一般根据传的数据不懂,写不同的方法 1,比如参数数量一致,类型不能一样
2,比如参数数量一致,类型一样,顺序一定不能一样。
封装:简单理解目的就是为了,代码安全性,以及少写代码。也便于我们开发,不需要考虑具体实现的细节,只需要一个我们想要的对象就可以。封装隐藏一些代码内部实现细节,提供一些公用的方法方法。比如getter setter 方法,jdk中的类,方法,和框架都是封装实现的
继承:为了分类管理,父类一般拥有所有子类的一些共同属性,或者功能,只是子类中具体的实现方法可能不一样。满足is a 条件下使用继承,抽象方法(子类必须实现的方法),抽象类(不能实列话)
多态:同一个引用类型,使用不同的实例而执行不同操作,简单理解一个人会写代码,会演讲,等当他扮演不同的角色的时候,执行不同的操作。
接口:用来替代抽象类,接口可以多继承(抽象类只能单继承),所有方法都是抽象方法,不能被实例化,所有的成员变量都是静态常量
包装类:[/size]主要目的是为了我们方面使用包装类里面的一些基本方法,常见的类型转换valueof(),自动装箱:jvm自动将一个基本类型,自动帮我们转换成一个引用类型,自动拆箱:将一个引用类型自动转换成基本类型。byte ---> Byte
short ---> Short
int ---> Integer
long ---> Long
float ---> Float
double ---> Double
boolean --->Boolean
char --->Character
在实际开发中定义类型,基本都用包装类。
[size=large]基本类:
statck 类堆栈得使用:常用方法:pop()移除堆栈顶部对象,并返回改对象。peek(),查看堆栈顶部的对象,但不从堆栈中移除它,search()表示以 1 为基数,距离堆栈顶部的距离,如果现实为-1表示此对象不再堆栈中。empty()判断是否为空。push(),将对象加入堆栈顶部。
字符String Stringbuffer(多线程安全)用于字符串拼装 StringBuidder(单线程)一般不用
日期Date ,日历Calender ,随机数,Random,数学类 math.Arrays类提供对数组的方法,排序,查询sort(a)数组名
异常处理 :声明(throws):抛出:直接在方法中调用:throw new Ex();
用try将可能会出异常的代码括起来,catch进行处理,catch可以有多个,finally 表示只要进入try,无论执行不执行catch都会执行finally里面的代码,即便含有return也会执行。
错误信息:error 程序员无论为力的错误,看JDK api
常见的异常:
ArithmeticException:算术错误情形,如以零作除数,ArrayIndexOutOfBoundsException:数组下标越界,NullPointerException:空指针 InputMismatchException:欲得到数据类型与实际输入类型不匹配 NumberFormatException:数字格式转换异常,如把"abc"转换成数字 IllegalArgumentException:方法接收到非法参数 ClassCastException:对象强制类型转换出错
ClassNotFoundException:类没找到。异常处理两种形式:可以抛出或者自己处理,一般选择自己处理,如果实在处理不了,才抛出 ExceptionInInitializerError - 如果该方法激发的初始化失败,LinkageError - 如果链接失败,IllegalAccessException - 如果该类或其 null 构造方法是不可访问的,InstantiationException - 如果此 Class 表示一个抽象类、接口、数组类、基本类型或 void; 或者该类没有 null 构造方法; 或者由于其他某种原因导致实例化失败。
集合框架JCF:
接口结构:collection :
list不唯一,有序,常用的add,remove,get等等方法,查API仔细看。实现类ArrayList(遍历,随机访问时效率比较高)LinkedList(插入,删除时效率比较高,额外提供了关于头部和尾部的 添加,获取,删除方法。)Stack 后进先出 lifo (last in first out)
set唯一,无序,实现类HashSet iterator遍历对象.如果用法忘记了看API讲的很详细,去重,原理重写hashCode equals两个方法,可以自定义去重。TreeSet
去重复, 并且可以按照某种顺序排序 TreeSet的add方法会将对象转为Comparable, 然后调用compareTo方法, 所以存储在TreeSet中的对象必须实现Comparable, 重写compareTo方法,Integer能排序(有默认顺序), String能排序(有默认顺序), 自定义的类存储的时候出现异常(没有顺序) queue先进先出 fifo (first in first out)应用场景:排队,发送邮件,发送短信,工作。
Map键值对:
比较重要的方法,keySet(),values,实现类HashMap 线程不安全
允许空值,HashTable 线程安全不允许空值
集合迭代:iterator
System.out.println("获取hashmap中的keyset,遍历打印"); Set set = map.keySet(); Iterator iter = set.iterator(); while (iter.hasNext()) { Object each = iter.next(); System.out.println(iter.next()); }
System.out.println("获取hashmap中的value 集合,遍历打印"); Collection con = map.values(); // foreach的方式可以迭代实现了iterator接口的集合 // con 表示当前迭代的集合 // each 当前迭代获取到的对象 for (Object each : con) { Dog dogEach = (Dog) each; System.out.println(dogEach.getName()); }
泛型集合:作用:指定集合只能存放某一种类型元素,使运行时异常提前到编译时异常。
Map<String,String> map = new HashMap<String,String>(); map.put("key","value");
IO 流:
file类:用于文件和文件夹操作的类,一般要实现Serializable可序列化接口,在网络中传输数据流,都要实现序列化。
//判断是否有这个文件 ,如果没有就创建这个文件夹 File file = null; File file1 = new File("D:"+file .separator+"Program Files"+file.separator+ "test"); if(!file1 .exists()){ //创建文件夹 file1.mkdirs(); } //创建一文件 File file2 = new File(file1+file .separator+"test.txt"); if(!file2 .exists()){ try { //创建文件 file2.createNewFile(); } catch (IOException e ) { e.printStackTrace(); } } //删除文件或者文件 注意删除时候要先确定文件夹内容是空的才能删掉文件夹 file2.delete(); file1.delete(); 从命名:注意重命名后要先赋给一个新的对象在操作新的对象 File file3 = file2; file3.renameTo( new File(file1+file .separator+"test3.txt")); //只读操作 file3.setReadOnly();
public class CopyFunction { /** * 封装拷贝函数 * @param fileold * @param filenew */ public static void copyfunction(File fileold, File filenew) { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(fileold); /** * 文件要拷贝的位置 */ fos = new FileOutputStream(filenew); /** * 按照512字节读取文件 */ byte[] bytearr = new byte[512]; int readEnd = -1; while((readEnd = fis.read(bytearr))!=-1){ fos.write(bytearr); } } catch (FileNotFoundException e) { System.out.println("文件没有找到"); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ /** * 关闭输入输出流 */ try { fis.close(); fos.close(); } catch (IOException e) { System.out.println("输入输出流关闭异常"); e.printStackTrace();}}} public void cutfunction(File fileold1, File filenew1) { /** * 剪切文件 */ copyfunction(fileold1, filenew1); fileold1.delete();} }
字节流:InputStream输入流(FileInputStream,ObjectInputStream(读写对象需要实现可序列),ByteArrayInputStream,DataInputStream(用于8中基本数据的传输))OutputStream.
字符流:Reader输入(BufferedReader,InputStreamReader,FileReader)writer输出(除了对应的还有一个PrintWriter),以及他们的子流,用的时候看API 一般要什么就给他什么就好了。
http://blog.csdn.net/hguisu/article/details/7418161介绍的很详细,想仔细研究的话可以去看。其他的内容太多,就单独分类吧
发表评论
-
Java 设计模式源码
2020-08-17 20:17 141经过一段时间学习和实践,整理了绝大多数设计模式源码demo 。 ... -
mac ngrok 使用
2018-12-20 18:22 864ngrok 是一个反向代理,通过在公共端点和本 ... -
Java元组学习
2018-12-19 15:38 604在Java 中我们平时用的接口和方法 只是单一 ... -
密码学2 密码安全注意
2018-11-30 15:11 5821.Java API支持 位于java.security包及子 ... -
base64 和 base32 源码解析
2018-11-30 14:19 1481package com.zd.demo; import ... -
maven 常用命令
2018-01-22 14:43 363mvn compile 编译源代码 mvn test-comp ... -
上传excel 通过url下载文件
2017-07-06 16:22 1052/** * 下载图片 */ ... -
多线程实现原理并发机制
2017-03-07 20:29 816进程: 查询百度大致可以理解为一段具有独 ... -
网络编程TCP/IP协议组
2017-03-04 13:42 546TCP/IP是个协议组: 主要可以分为4层,分别是应 ... -
Guava包的ListenableFuture解析
2016-10-09 13:40 1041package com.downjoy.test.guava. ... -
spring+guava事件异步分发处理
2016-10-09 09:56 4365Guava是Google开源的一个Java基础类库,它在Goo ... -
httpUtil工具和apche httpclient 工具类使用
2016-09-26 15:38 2396httpUtil请求网络请求工具: package demo ... -
mongodb+spring +morphia完整版框架搭建
2016-09-09 10:22 5714Morphia是一个开放源代 ... -
mongodb注解详解
2016-09-06 09:26 40461、@Entity 如果你想通过Morphia把你的对 ... -
自定义MD5加盐加密方式代码实现
2016-09-02 16:45 5057按照自己的理解对密码加盐加密。当用户注册时候会先生成盐值 ... -
密码学
2016-08-25 11:14 5681 密码学简介 2.1 ... -
kafka
2016-08-11 14:08 708Kafka is a distributed,partiti ... -
dubbo+zookeeper构建高可用分布式集群
2016-08-24 09:47 4951(1) 当服务越来越多时, ... -
java生产6为邀请码
2016-08-09 17:23 1948package demo.dcn.vo; import ... -
jxl
2016-08-09 14:30 493Java生成和操作Excel文件 package dem ...
相关推荐
JavaSE基础入门视频教程第24天主要涵盖了IO流对象的相关知识,这是Java编程中非常核心的一个部分。IO流在Java中用于处理数据的输入和输出,是程序与外部世界交换信息的重要工具。本教程通过一系列视频讲解了不同类型...
### JavaSE基础学习笔记 #### 一、Java概述与历史 - **起源与发展**:Java最初由Sun Microsystems在1995年推出,后被Oracle公司收购并继续发展。Java经历了多个版本的发展,逐渐形成了Java SE(Standard Edition,...
JavaSE基础知识大全,以Word文档形式总结。 第一个Word:绪论 第二个Word:基本元素 ······ 第十八个Word:net补充 第十九个Word:异常补充 祝大家:学习开心!越学越年轻!
总的来说,JavaSE基础知识涵盖了变量、数据类型、运算符、流程控制、面向对象、异常处理、文件I/O和集合框架等多个方面。通过学习和实践,你可以构建出功能丰富的桌面应用程序。传智播客毕老师的教程是一个很好的...
### JavaSE基础知识总结 #### 一、Java特点与运行原理 **1.1 Java特点** - **简单性:** Java语言的设计目标之一是易于理解和使用,它的语法清晰、简洁。 - **面向对象:** Java是一种纯面向对象的语言,支持封装...
Java基础每日复习笔记-JavaSE基础阶段.edf
对于源代码的分析有助于大家更好地学习此门技术,促进大家共同进步
本教程《JavaSE基础教程》将详细讲解以上各个知识点,并通过实例代码加深理解,为新手提供全面的Java编程基础知识。阅读并实践其中的内容,将有助于你快速掌握JavaSE编程,为后续的JavaEE或Android开发打下坚实的...
JAVASE基础知识详解
JavaSE基础笔记整合 本文档总结了JavaSE的基础知识点,涵盖了Java语言的发展史、特点、环境搭建、编写Java应用程序、ClassPath、Path环境变量的配置等。 一、Java语言发展史 Java语言由SUN公司在1991年研发,后被...
### JavaSE基础知识点详解 #### 一、JavaSE概述与集成开发环境(IDE) - **JavaSE**: Java Standard Edition 的缩写,是用于开发标准版Java应用的基础平台,包括核心类库、Java语言特性和基本工具等。 - **集成...
标题:“javaSE基础.pdf” 描述:“javaSE基础笔记,从变量、if、while、for、do_while循环、数组、集合、面向对象的面试题,封装、基础多态等实际案例” 标签:“java SE” 从文档的标题、描述和标签可以看出,...
尚硅谷JAVASE基础笔记
javaSE基础,查漏补缺必备
JavaSE 基础语法测试题库知识点总结 本资源摘要信息主要涵盖 JavaSE 基础语法测试题库的相关知识点,涵盖了环境变量、Java 源文件和编译后的文件扩展名、基本数据类型、时间转换、控制台输出、数组操作、排序算法、...
这个"javase基础练习代码"集合提供了一系列适合初学者的编程练习,旨在帮助学习者掌握Java编程的基础概念和技术。以下是一些主要的Java SE基础知识点,通过这些练习,你可以深入理解和运用它们: 1. **基础语法**:...
本套视频教程专注于JavaSE的基础知识,是初学者踏入Java编程世界的理想起点。根据描述,这套教程分为四个大的部分,这通常涵盖Java语言的基础语法、核心类库、输入/输出以及多线程等关键领域。 第一部分可能包含...