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父类{} }

转载于:https://www.cnblogs.com/cccy0/p/9496365.html

Java : java基础(1)相关推荐

  1. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  2. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  3. java负数右移_收入囊中篇---Java程序基础(二)

    前言: 本篇是接着上一篇更新的,如果没有阅读上一篇的话,可以查阅或回顾一下. 1.收入囊中篇---Java基础必备知识(一) 2.收入囊中篇---Java程序基础(二) Java程序基础目录 1.Ja ...

  4. java 前端基础知识_【计算机·知识】关于前端的计算机基础知识

    原标题:[计算机·知识]关于前端的计算机基础知识 作为一个刚刚入门的程序猿,你是否对专业知识有足够的了解?今天新闻君带你走进前端的世界. 前端的语言接触起来相对于后端的语言要容易不少,但前端的语言也有 ...

  5. java基础入门传智播客 源码_Java-_2020年版Java零基础视频教程(Java 0基础,Java初学入门)魔鬼讲师老杜出品...

    不会闲聊!!!不会扯淡!!!小UP只会分享与Java相关的学习资源 还记得那年带你Java入门的一声"吼"吗? B站目前播放量已经快到450多万播放量的Java零基础教程的创作者& ...

  6. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  7. [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1)

    MIS信息管理系统实战开发之使用MySQL实现保存 开发背景 ID.姓名.年龄为公共信息,而学生有成绩,工人有工资 定义一个抽象类Person(ID.姓名.年龄),学生是其子类,有成绩,工人是其子类有 ...

  8. Java零基础学习难吗

    java编程是入行互联网的小伙伴们大多数的选择,那么对于零基础的小伙伴来说Java零基础学习难吗?如果你是初学者,你可以很好的理解java编程语言.并不困难.如果你的学习能力比较高,那么你对Java的 ...

  9. java培训基础知识都学哪些

    很多人都开始学习java技术,觉得java语言在未来的发展前景空间非常大,事实却是如此,那么针对于零基础的同学, 学习java技术需要学哪些呢?下面我们就来看看java培训基础知识都学哪些? java ...

  10. cmd 将文件夹下文件剪切到另外一个文件_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇...

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

最新文章

  1. 动态内存管理和智能指针 2.0 -- shared_ptr
  2. 解决RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral.cpp:70N
  3. selenium webdirver之rdoc使用
  4. Android Studio解决未识别Java文件(出现红J)问题
  5. 一行代码让你的python运行速度提高100倍
  6. 云闪付单个红包最高2018,这是要打败支付宝的节奏吗?
  7. 如何批量转化成jpg格式_heic图片格式快速转换jpg,批量转换方法
  8. 小朋友学C++(1)
  9. linux怎么查看内核定义的结构体,Linux如何查找一个结构体的原始定义
  10. c 与matlab混编,C与MATLAB混合编程之调用MATLAB引擎
  11. 201771010101白玛次仁《面向对象程序设计(java)》第十二周实验总结
  12. 《C++编程风格(修订版)》——3.2 继承作用域准则
  13. idea 根据数据库表自动创建持久化类
  14. 计算机组成原理白中英ppt,计算机组成原理(白中英)第二章.ppt
  15. LGSVL与Apollo5.0联合仿真
  16. 三相电机控制方式入门,看完这一篇就够了
  17. 【论文精读】A view-free image stitching network based on global homography-基于全局单应的无视图图像拼接网络
  18. MQ学习(二)----ActiveMQ简介(转)
  19. vue项目中获取今天,昨天,明天时间方法
  20. 矿大计算机学院的周裕浩,2019年“中国矿业大学优秀创新硕士奖学金”评选结果...

热门文章

  1. html页面返回json数据为空,在Html页面中,展示出Json格式数据,且保持缩进格式...
  2. python中spider的用法_python网络爬虫 CrawlSpider使用详解
  3. 安装包没有证书怎么强行安装_该安装包未包含任何证书
  4. dev c++自动补全_Flutter 自动化测试-开篇
  5. 下面哪个对象能代表当前的HTML文件,Java基础练习选择题(5)
  6. 事态升级是什么意思_农村老俗话说“男吵官司女吵穷”是什么意思呢,有没有道理?...
  7. 4 截图_十年漫迷舍不得删的4张截图,有大汗淋漓的香磷,满满的都是回忆
  8. 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...
  9. java 企业级应用设计规范_一步一步理解Java 企业级应用的可扩展性
  10. go语言 error