java编译器有常亮优化机制,如果是常量的计算,会直接判断常量计算结果的取值范围,如果是变量,则没办法判断计算取值
范围,编译会异常(如两个byte类型的变量相加).

java中的常量指的是用 static final修饰的变量.具体可以看 https://blog.csdn.net/xueyepiaoling/article/details/6322651

整数默认的类型是int类型,浮点数默认的类型是double类型

在进行运算的时候,byte,short,char都会隐式转换为int类型,剩下的数据类型由小到大依次为 int-long-float-double

字符类型参与运算,会按照ASCII表转换成相对应的数字,然后计算,字符串类型在和任何类型用+拼接时都会把任何类型转换为
字符串类型(按照计算顺序,如果字符串在算式的最前,出现上面说的结果,但是前面如果是 1+1+"hello",那么还是会先计算
1+1,结果就是2hello,小括号可以提升计算优先级).

&& 如果左边确定为 false,那么右边的逻辑表达式不执行,因为最终结果就是false
|| 同样左边为true,那么右边的逻辑表达式也不执行,因为最终结果就是true

三元运算符 int a = (a > b) ? a : b;意思是如果括号内的逻辑表达式true,就取a的值,false取b的值.

switch语句的表达式只能接受 short char byte int String 枚举 类型,long等类型不接受.

跳出指定循环用标号 如 a: for(...){循环语句},那么如果 break a;则代表跳出a:后面的循环.

方法重载是指在一个类中有多个相同名字的方法,他们的参数个数和类型不同,返回值类型也可能不一样,调用重载方法时,
编译器能自动根据参数类型和个数选择合适的方法.通常用来创建一组任务相似但参数个数和类型不同的方法.

基本数据类型传递的值不会改变,因为调用完后就弹栈,局部变量消失,引用数据类型的值传递改变原值,因为对象保存在堆
里面,可以通过地址继续访问(如往方法里面传值).

java中值的传递只能是值,因为引用数据类型传递的地址实际上只是一个地址的值.

成员变量和局部变量名字相同的情况下,一般访问哪个是采用就近原则,所以一般局部变量会覆盖成员变量.

一个文件里面包含两个或两个以上的类则包含main方法的类必须是公共的切类名要和文件名一致

主函数必须要是一个公共静态方法,如 public static void main(String[] args){ }

switch case 里面如果不加 break,那么程序会从case匹配正确的那里开始一直执行到有break和return的地方,
无论后面的case是否匹配.

-----------------------------------------------------------------------------------------------------

main方法是JVM(java虚拟机)自动调用

JVM调用main方法的位置自然不会在某个类中、或某个包中,因此只有当main方法在公有级别上时,才对JVM可见,
所以mian方法需要public修饰,

main方法所在的类也需要public修饰符。

另外由于main方法是所有程序的入口,也就是main被调用时没有任何对象创建,不通过对象调用某一方法,
只有将该方法定义为静态方法,所以main方法是一个静态方法,既需要static修饰。

JVM对于java程序已经是最底层,由它调用的方法的返回值已经没有任何地方可去,因此,main方法返回值为空,
既需用void修饰。

至于main方法的参数String[ ] arg我们现在已经很少有机会去用它了,它用于在接受命令行传入的参数.

------------------------------------------------------------------------------------------------------

类不能多继承,但是接口可以继承多个接口,所以通过接口来实现多继承的功能。

如果一个类中所有变量和方法都是静态的(static),那么可以把构造方法设置为私有,防止别人创建对象.

生成文档: javadoc -d api -version -author -encoding utf-8 ClassFileName.java

子类继承父类,如果父类没有空参构造方法,那么子类构造方法中一定要用super(param...)调用父类构造方法.

final 修饰的变量可以显式初始化,也可以在构造器中进行初始化.

向上转型之后,非 private static final 的方法会出现动态绑定,具体表现为:如果用父类的引用指向子类的对象,那么
实际上调用动态绑定的方法是调用的子类的方法.但是却不能使用子类新增的方法,如果想使用,需要再向下转型:
Son son = (Son) father;

instanceof 作用是判断左边的引用是否和右边的对象是一个类型的.如果向上转型,那么会返回false.

抽象一个方法或者类 用 abstract,如果一个方法是抽象的,那么它的类一定是抽象的.它的子类要么也设置成抽象的,
要么重写它所有的抽象方法.抽象方法不能有代码块{}.

abstract 不能和 static final private 共存.

接口用 interface 定义,接口中的方法必须全部都是抽象方法.类实现接口用 implements.同样,类也必须实现接口中的
所有抽象方法.类可以是抽象的.

接口中的成员变量只能是常量全部默认加修饰符 public static final,成员方法全部默认加 public abstract.

类可以实现多个接口,接口之间用逗号隔开,接口与接口之间可以有继承关系,可以多继承.

编译带包的类 javac -d . ClassName.java, 使用带包的类 com.xxx.ClassName.(不建议这样使用,用import)

内部类:使用格式: 外部类名.内部类名 = 外部类对象.内部类对象,如 FClass.SClass fs = new FClass().new SClass()
内部类可以访问外部类的成员,包括私有,外部类访问内部类必须要创建对象.

new 接口名(){...} 这是实现一个接口(可以说是接口的子类的对象),new 类名(){} 这是继承了一个类,是一个子类,然后创建
对象.这个子类可以在代码块中添加新的方法等.因为直接就是继承父类然后创建对象,所以这个子类没有名字,叫匿名内部类.

匿名内部类,可以理解成子类直接在父类中实现。{}中就是子类。所以说是一个匿名的子类直接在父类里面实现了,所以叫
内部类, 格式大概是 父类 { 匿名类extends父类{} }

Java : java基础(1)的更多相关文章

  1. java必备基础知识点

    Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...

  2. Java以基础类库

    Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...

  3. Java SE 基础:注释

    Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...

  4. Java SE 基础:标识(zhì)符

    Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...

  5. Java SE 基础:常用关键字

    Java SE 基础:常用关键字 常用关键字表

  6. java IO基础操作

    java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...

  7. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  8. [转]Java多线程干货系列—(一)Java多线程基础

    Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...

  9. Java 入门基础

    第零章 开始学习Java 1.Java基础最重要 Java学习中,Java的基础.Java面向对象是最关键的,而一些像框架技术等都是建立在基础之上东西. 多多处理问题,积累处理问题的能力. Java框 ...

  10. Java多线程基础:进程和线程之由来

    转载: Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够 ...

随机推荐

  1. .NET开源工作流RoadFlow-表单设计-文本域

    点击工具栏上的 文本域 按钮可弹出文本域属性设置: 绑定字段:与数据表的某个字段绑定. 默认值:文本域初始值. 最大字符数:文本域可输入的最大字符数. 宽度:文本域的宽度,如:200px,80%. 高 ...

  2. html网页访问WebAPI中的方法遇到的问题

      1.移动端访问远程服务时,建议使用WebAPI 2.用不同浏览器访问WebAPI时返回的文本格式是不同的,Chrome Firefox将在浏览器中以XML形式显示此列表,IE浏览器将获得Json格 ...

  3. android launcher

    1.android_launcher的源码详细分析 2.android---launcher 3.Android 4.4 Launcher3桌面源码分析 4.通过深度剖析Android之Launche ...

  4. java面试题之----get和post请求方法的区别

    GET和POST两种基本请求方法的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过req ...

  5. IFrame安全问题解决办法(跨框架脚本(XFS)漏洞)

    最近项目要交付了,对方安全测试的时候检测出高危险漏洞,由于刚参加工作不久,经验不足,未涉及过此方面的东西.经过一番查询和探索,最终解决了这个问题,记录一下. 发现的漏洞为缺少跨框架脚本保护.跨框架脚本 ...

  6. sqlserver ceiling函数用法

    ceiling函数返回大于或等于所给数字表达式的最小整数. floor函数返回小于或等于所给数字表达式的最大整数. eg: select ceiling(4.42) ---5select CEILIN ...

  7. wcf 实现多契约 z

    我们知道,WCF服务端是先定义服务协定,其实就是一个接口,然后通过实现接口来定义服务类.那么,有一个问题,如果一个服务类同时实现N个接口(也就是有N个协定)呢?结果会如何? 不必猜,我们还是通过实验来 ...

  8. June 03rd 2017 Week 22nd Saturday

    Truth and roses have thorns about them. 真理和玫瑰,身边都有刺. Yesterday, I met with a young, beautiful profes ...

  9. Excel-怎样实现行列转置

    有时候,我们为了某些需要,必须把工作表的行列进行转置的方式显示.重新输入很浪费时间,怎样简单的实现转置呢,强大的excel2007提供了此项功能,具体怎么做,下面看我来演示一下. 工具/原料   装有 ...

  10. W5100与MCU的连接方式

    W5100与MCU的连接方式 W5100与MCU的连接方式主要有直接总线连接.间接总线连接.SPI总线连接这三种连接方法,不同的连接方法适应于不同的场合,应该按需选择最恰当的连接方式. 1)直接总线连 ...