一天入门Java快速入门
来源:互联网 发布:淘宝店铺店招尺寸 编辑:程序博客网 时间:2024/04/25 21:28
前言
我写此文主要
参考:
Java:Java快速入门-幸福框架
目的是:
快速入门啦.由于工作的需求-Android安全.
计划:
Java一天入门
我从未学过Java.我会找出Java与C++等语言的区别.以达到快速学习的目的.
据了解Java基于C++,但是更简单易学哟.
开始
类名
那一群带.的东西是搞毛的?形如:
package com.happyframework.javastudy.hello;
package对应目录的相对路径,class对应文件.
上面对应:
E:\Workspaces\MyEclipse 10\JavaStudy\src\com\happyframework\javastudy\hello\Hello.java
关于class有如下几点规则:
- 文件的名字必须和class的名字一致(public级别的class名字)。
- 文件必须只包含一个public访问基本的class(可以包含多个非public级别的class)。
- package名字必须和目录一致。
入口方法
Java里面只有方法,没有函数哟.
入口方法如下:
public class App { public static void main(String[] args) { com.happyframework.javastudy.hello.Hello.hello(); } }
数据类型
特别之处是小数类型的常量默认是double类型,声明float类型的常量需要使用F作为后缀。
float fage =21.0F
运算符
特别之处是:
位运算符多了一种:
>
“>> 右移,高位补符号位” 这里右移一位.
“>>> 无符号右移,高位补0”; 与>>类似
字符串
Java原生支持字符串类型,而不是像C++一样使用扩展,或者像C一样使用数组.
String是拥有“值语义”的引用类型,字符串常量实现了“享元模式”,equals会按照内容进行比较,==按照地址比较。
public class Program { /** * @param args */ public static void main(String[] args) { String x = "段光伟"; String y = new String("段光伟"); System.out.println(x.equals(y)); // true System.out.println(x == y); // false }}
为了高效的修改字符串Java引入了StringBuffer:
{ StringBuffer sb = new StringBuffer() .append("段") .append("光") .append("伟"); System.out.println(sb.toString()); }
数组
相较于C++增加了一种声明语法,改成了另外的三种初始化语法:
声明语法
DataType[] name 或 DataType name[]。
初始化语法
DataType[] name = new DataType[length]。
DataType[] name = new DataType[] { element1, element2, …elementn }。
DataType[] name = { element1, element2, …elementn }。
只有不等长多维数组DataType[][],没有DataType[xxx, xxx]啦。
控制结构
- 条件:没变.
- 循环:for-each
- Labeled block (多了个lable?)
public class Program { /** * @param args */ public static void main(String[] args) { task: { int age = 25; System.out.println("start"); if (age < 30) { break task; } System.out.println("end"); } }}
方法
终于来到方法了.
Java中所有的赋值和方法调用都是“按值“处理的,引用类型的值是对象的地址,原始类型的值是其自身。
Java支持变长方法参数。
public class Program { /** * @param args */ public static void main(String[] args) { print("段光伟", "段光宇"); print(new String[] { "段光伟", "段光宇" }); } private static void print(String... args) { for (String item : args) { System.out.println(item); } }}
类糊涂开始
调用自身的构造方法是用this(xxx,xxx,…)来完成,且必须位于第一行。
静态成员
Java中类似静态构造方法的结构,称之为:静态初始化代码块,与之对应的是实例初始化代码块.
继承
继承使用extends,抽象类和抽象方法使用abstract声明,向下转型使用(ChildType)instance.
重写
Java中的重写规则比较灵活,具体如下:
1. 除了private修饰之外的所有实例方法都可以重写,不需要显式的声明.
2. 重写的方法为了显式的表达重写这一概念,使用@Override进行注解.
3. 重写的方法可以修改访问修饰符和返回类型,只要和父类的方法兼容(访问级别更高,返回类型更具体).
4. 可以使用final将某个方法标记为不可重写.
5. 在构造方法中使用super(xxx,xxx)调用父类构造方法,在常规实例方法中使用super.method(xxx,xxx)调用父类方法.
6. Java不支持覆盖(new).
包
包的名字和项目路径下的目录路径相对应.
Java支持三种导入语法:
1. 导入类型:import xxx.xxx.xxxClass
2. 导入包:import xxx.xxx.xxx.*
3. 导入静态成员: import static xxx.xxx.*
import static util.Helper.*;public class Program { /** * @param args */ public static void main(String[] args) { puts("段光伟"); }}
访问级别
Java支持四种访问级别:public,private,protected和default(默认),类型和接口只支持public和default.
- protected 修饰过的成员只能被自己、子类和同一个包里的(不包括子包)其他类型访问。
- default 修改过的类型或成员只能被自己和同一个包里的(不包括子包)其他类型访问。
嵌套类
晕啊
常量
有一点需要注意的是:只有一种情况Java的常量是编译时常量(编译器会帮你替换),其它情况都是运行时常量,这种情况是:静态类型常量且常量的值可以编译时确定。
接口
Java的接口可以包含方法签名,常量和嵌套类.
不同什么意思?百度一下.
枚举
Java枚举是class.
异常
Java中的异常分为checked和unchecked.
所有继承Exception的异常(除了RuntimeException和它的后代之外)都是checked异常。
而checked异常必须声明在方法中或被捕获.
装箱和拆箱
自动装箱和自动拆箱是Java提供的语法糖。
语法糖是什么,我怎么会告诉你.
泛型方法
类似于C++的模板哈
类型参数约束
类型擦除过程
end.
入门到此结束.
- 一天入门Java快速入门
- java入门第一天
- java :java快速入门
- Java:Java快速入门
- html入门之—一天快速掌握
- html入门之—一天快速掌握
- java入门 暑假第一天
- java第一天正式入门
- java从入门到弃坑第一天
- Java安全快速入门
- Java Web快速入门
- Java快速入门
- java - LDAP快速入门
- java JSP快速入门
- JAVA快速入门
- Java EE 快速入门
- Java多线程快速入门
- java Servlet快速入门
- C# Mutex对象的使用
- 错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 用REDIS实现LBS系统
- 面试必须get的技能点
- JAVA在向tomcat部署项目的时候,部署项目找不到路径,在对于款式和项目分离的情况下加载不到款式的路径问题
- 一天入门Java快速入门
- Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
- PHP大小写:函数名和类名不区分,变量名区分
- JS OffsetParent属性深入解析
- hdu 1166 敌兵布阵
- ThinkPHP学习
- JQuery 选择器
- QT显示图片 .转
- 安卓/system下的文件为只读的解决办法(命令行)