Java基础点滴
1. 关于interface的定义
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
注意,斜体的部分代表是缺省的,默认的,即便声明的时候不写,也会在编译时默认加上。尤其是常量需要注意,继承的子类不能修改接口中声明的常量。另外,修饰符写与不写都是public访问权限,因为接口中的方法永远是public权限的。
2 this与super
序号 | 区别点 | this | super |
1 | 属性访问 | 访问本类中的属性,如果本类中没有此属性,则从父类中继续查找 | 访问父类中的属性 |
2 | 方法 | 访问本类中的方法,如果本类中没有此方法,则从父类中继续查找 | 直接访问父类中的方法 |
3 | 调用构造 | 调用本来构造,必须放在构造方法的首行 | 调用父类构造,必须放在子类构造方法的首行 |
4 | 特殊 | 表示当前对象 | 无此概念 |
3 方法的重载与覆写的区别
序号 | 区别点 | 重载(Overload) | 覆写(Override) |
1 | 定义 | 方法名称相同,参数的类型或个数不同 | 方法名称,参数的类型,返回值类型全部相同 |
2 | 权限 | 对权限没有要求 | 被覆写的方法不能拥有更严格的权限 |
3 | 范围 | 发生在一个类中 | 发生在继承类中 |
4 同步机制
在多线程中,会使用到同步机制,使得一个task任务变为一个在生命周期上不可分割的Atom单位(这是因为多线程的Thread所对应的基本执行单位可以为for循环内的 i 单位 或是Thread.sleep()这样的线程单位),从而避免产生由多线程机制所引发的难以预料的不良后果。同步关键字为sychronized,使用方式有两种。一种为同步代码块方式,格式为sychronized(同步对象){需要同步的代码},这里的同步对象指的是所对应的执行线程,可以为当前执行线程this,也可以指定一种可能遇到的线程的引用。另一种方式为同步方法,使用sychronized关键字将一个方法声明成同步方法。两种方式可以实现同样的效果。但是,前一种方式似乎更为灵活,可以实现更为广泛的场景,但也正因如此,也容易产生滥用或者失误,导致死锁的现象发生。如:sychronized(this){task satements;}可以等价描述为this.taskName(); public sychronized void taskName();
5 泛型
泛型的基本定义格式:
[访问权限] class 类名称<T1, T2, ..., Tn>{ //T代表泛型类型标识
[访问权限] T 变量名称;
[访问权限] T 方法名称(){};
[访问权限] 返回值类型声明 方法名称(T 变量名称){};
}
通配符?可以替代T,但是需要保持一致性。泛型上限:类名<? extends 类> 对象 。 泛型下限:类名 <? super 类> 对象 。注意,泛型类型不能向上转型,因为如果将子类泛型变为父类类型,则表示扩大了子类的内容。泛型接口:iterface Info<T>{public T getVar();}
java中length属性,length()方法和size()的方法的区别
1.length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性;
2.length()方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;
3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!
Cannot refer to a non-final variable param inside an inner class defined in a different method
如果定义一个局部内部类,并且局部内部类使用了一个在其外部定义的对象,编译器会要求其参数引用是final呢。
注意:局部内部类,包括匿名内部类。一旦参数在匿名类内部使用,则必须是final
public String selectWhitParam(final Map<String, Object> param){
return new SQL(){
{
SELECT("*");
FROM("tb_employee");
if(param.get("id") != null){
WHERE(" id = #{id} ");
}
...
Java编程思想第四版环境部署
http://blog.csdn.net/u013573789/article/details/45287941
http://blog.csdn.net/realizelizijun2013/article/details/39701155
这个问题确实是由较高版本的JDK编译的Javaclass文件试图在较低版本的JVM上运行产生的错误。
1、解决措施就是保证jvm(Java命令)和jdk(javac命令)版本一致。如果是Linux版本,则在命令行中分别输入java -version和javac -version命令来查看版本是否一致。这里假设都是1.7版本。
2、如果都一致,但还是解决不了问题,那么你肯定不是直接在命令行中用javac来编译的,而是用类似于eclipse、netbeans这样的编译器来编译的。因为很多编译器都自带javac,而不是采用操作系统中的编译器。如果你的编译器是eclipse的话,那么需要在项目的属性里设置jdk版本,方法是右击项目-->properties-->javacompiler --> Enable project specific settings -->将compiler compliance level设置为1.7,也就是与jvm一致的版本(在命令行中java -version所显示的版本)。
综上,如果你是用编译器来编译的话,请首先确保编译器自带的jdk版本是否和操作系统中的java版本一致。
(参考: http://blog.csdn.net/chen110juan/article/details/47272537)
Jar包下载:http://www.java2s.com/Code/Jar/
applet插件安装
http://blog.csdn.net/suxiang198/article/details/48208019
Java基础点滴的更多相关文章
- 生活点滴:java基础知识细化
生活点滴:java基础知识细化 一.前言 越是对一门语言深入了解,就会发现自己不知道的东西越多,这才是走向了正道,同样的,对于java语言特性的学习,笔者也只是初窥门径. 二.java基础知识思考 i ...
- PHP基础点滴
PHP基础点滴 双冒号::的用法: 双冒号操作符即作用域限定操作符Scope Resolution Operator可以访问静态.const和类中重写的属性与方法. 伪类型(pseudo-types) ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 最适合作为Java基础面试题之Singleton模式
看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
随机推荐
- 【编程技巧】JAVA读取url地址中的文本内容
应用场景:最常见的是有自已的网站,在注册广告联盟的时候.都需要下载一个文本文件来验证网站的有效性.例如淘宝.京东等都有这一过程 实现代码://读url地址的内容 public void ...
- NSString拼接字符串
NSString* string; // 结果字符串 02 NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来 03 04 / ...
- CCF系列之最优灌溉(201412-4)
试题编号:201412-4试题名称:最优灌溉时间限制: 1.0s内存限制: 256.0MB 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来 ...
- [知了堂学习笔记]_css3特效第二篇--行走的线条&&置顶导航栏
一.行走的线条. 效果图(加载可能会慢一点儿,请稍等...): html代码: <div class="movingLines"> <img src=" ...
- CentOS 7安装
使用U盘安装 1.CentOS 7系统镜像制作U盘启动盘 1).下载CentOS 7系统镜像 下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/ ...
- jquery 导出Excel表格
仅在 table 中应用过!适用于导出简单的excel <script type="text/javascript" src="jquery.table2excel ...
- maven-assembly-plugin插件的使用方法
一. Assembly 是什么意思? 二. maven-assembly-plugin是什么? 它是maven中针对打包任务而提供的标准插件. 三. maven-assembly-plugin插件的作 ...
- C# Linq基本常用用法
1.什么是Linq? Lanaguage Interated Query(语言集成查询),Linq 是集成C# 和VB这些语言中用于提供数据查询能力的一个新特性. 这里只介绍两种基本常用用法. 学习方 ...
- C# 多线程复习笔记
编码的日子其实也有一段时间了,但是,作为一个客户端程序,因为自己是做游戏开发的,一直没有对线程这个概念比较模糊吧. 记录下线程的整理学习路线.原文:http://www.cnblogs.com/min ...
- 小项目:聊天室 (jQuery,PHP,MySQL)
这几天写了一个小项目,初衷是自己写一个有前端,有后端的东西练练手,所以,实际意义并不大,只是拿来试试手而已. 我对这个聊天室的构想是这样的:先建两个数据库,一个保存用户名和密码,另一个保存用户名和发送 ...