提醒:关于那些和我一样新鸟来看资料的,能看懂多少看多少,看不懂的就是不重要,重要的你想我自己学习肯定要标注的,这些信息明白每个知识点实际作用就好了,其他的比如等会讲的常量内存,常量池这些都是我找的资料,有的自己都还不是太清楚,只是为了明白有这回事,没有那个新手教程一上来就讲这些,我拿低工资的怎么能去给搞研究的操心!
程序的编译与执行:
1.程序入口,在每一种编编程中,都会有一个main作为程序入口,JAVA的main写法如下:
public static void main(String){}
2.第一个程序:
class Dome{ public static void main(String [] args){ System.out.print("Hello,Wrod!"); } }
写完代码后,我们需要用JAVAC编译器,编译出能让每个系统能看懂的代码,此时系统就会生成对应的CLASS文件,每一个类都会单独编译出一个class。然后再用JAVA在虚拟机中运行代码!JAVA称此class文件为:字节码文件!
JAVA生成程序练习步骤:
1.编写JAVA 2.编译源程序生成字节码文件 3.执行编译后的字节码文件测试!
-------------------------------------------------------------------------------------------
JAVA的基本语法:
一.关键字:关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。Java语言规定关键字不能作为标识符。 目前共有53个Java关键字,其中,"const"和"goto"这两个关键字在Java语言中并没有具体含义。Java语言把它们列为关键字,只是因为"const"和"goto"是其他某些计算机语言的关键字。
3.java的关键字分别是什么,作用是什么? 以下关键词来自CNDS博客:气自华.
(1).访问修饰符的关键字(共3个)
关键字 |
意思 |
备注,常用 |
public |
公有的 |
可跨包,(默认选择) |
protected |
受保护的 |
当前包内可用 |
private |
私有的 |
当前类可用 |
(2).定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(共6个)
关键字 |
意思 |
备注,常用 |
class |
类 |
public class A(){} 花括号里有已实现方法体,类名需要与文件名相同 |
interface |
接口 |
public interface B(){} 花括号里有方法体,但没有实现,方法体句子后面是英文分号“:”结尾 |
abstract |
声明抽象 |
public abstract class C(){} 介于类与接口中间,可以有也可以没有已经实现的方法体 |
implements |
实现 |
用于类或接口实现接口public class A interface B(){} |
extends |
继承 |
用于类继承类 public class A extends D(){} |
new |
创建新对象 |
A a=new A(); A表示一个类 |
(3).包的关键字(共2个)
关键字 |
意思 |
备注,常用 |
import |
引入包的关键字 |
当使用某个包的一些类时,仅需类名 然后使用ctrl+shift+o或者选定类名(类或属性或方法)按住ctrl+单击 即可自动插入类所在的包。如:JFrame 快捷键之后自动加入 import javax.swing.JFrame; |
package |
定义包的关键字 |
将所有有关的类放在一个包类以便查找修改等。如:package javake.flycat.draw002; |
(4).数据类型的关键字(共12个)
关键字 |
意思 |
备注,常用 |
byte |
字节型 |
8bit |
char |
字符型 |
16bit |
boolean |
布尔型 |
-- |
short |
短整型 |
16bit |
int |
整型 |
32bit |
float |
浮点型 |
32bit |
long |
长整型 |
64bit |
double |
双精度 |
64bit |
void |
无返回 |
public void A(){} 其他需要返回的经常与return连用 |
null |
空值 |
|
true |
真 |
|
false |
假 |
(5).条件循环(流程控制)(共12个)
关键字 |
意思 |
备注,常用 |
if |
如果 |
if(){} 如果小括号里面怎么怎么样 花括号就怎么怎么样 |
else |
否则,或者 |
常与if连用,用法相同 |
while |
当什么的时候 |
while 怎么样就do什么 while(){} |
for |
满足三个条件时 |
for ( ; ; ){} |
switch |
开关 |
switch(表达式) |
case |
返回开关里的结果 |
|
default |
默认 |
|
do |
运行 |
长与while连用 |
break |
跳出循环 |
|
continue |
继续 |
中断本次循环,并并开始下一次 |
return |
返回 |
return 一个返回值类型 |
instanceof |
实例 |
一个二元操作符,和==,>,<是同一类的。测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据 |
(6).修饰方法、类、属性和变量(共9个)
关键字 |
意思 |
备注,常用 |
static |
静态的 |
属性和方法都可以用static修饰,直接使用类名.属性和方法名。 只有内部类可以使用static关键字修饰,调用直接使用类名.内部类类名进行调用。 static可以独立存在。静态块 |
final |
最终的不可被改变的 |
方法和类都可以用final来修饰 final修饰的类是不能被继承的 final修饰的方法是不能被子类重写。 常量的定义: final修饰的属性就是常量。 |
super |
调用父类的方法 |
常见public void paint(Graphics g){ super.paint(g); ··· } |
this |
当前类的父类的对象 |
调用当前类中的方法(表示调用这个方法的对象) this.addActionListener(al):等等 |
native |
本地 |
|
strictfp |
严格,精准 |
|
synchronized |
线程,同步 |
|
transient |
短暂 |
|
volatile |
易失 |
static 例子:
public class Test{
class A{} //内部类
ActionListener al=new ActionListener(···){} //匿名内部类
}
静态块优先于其他方法/类的执行
(7).错误处理(共5个)
关键字 |
意思 |
备注,常用 |
catch |
处理异常 |
1.try+catch 2.try+catch+finally 3.try+finally (来自网上的资料) |
try |
捕获异常 |
|
finally |
有没有异常都执行 |
|
throw |
抛出一个异常对象 |
一些可以导致程序出问题的因素,比如书写错误,逻辑错误或者是api的应用错误等等. 为了防止程序的崩溃就要预先检测这些因素,所以java 使用了异常这个机制. 在java中异常是靠 "抛出" 也就是英语的"throw" 来使用的,意思是如果发现到什么异常的时候就把错误信息 "抛出" |
throws |
声明一个异常可能被抛出 |
把异常交给他的上级管理,自己不进行异常处理 |
throw是你执行的动作。比如你觉得可能有异常,那么就抱出去 如:
String a; if(a == null),
throw new exception("a为null");
所以throw是一个抛出去的动作
throws只用在一个方法的末端,表示这个方法体内部如果有异常,这抛给它的调用者。 如: public void add(int a, int b) throws Exception(); 这个方法表示,在执行这个方法的时候,可能产生一个异常,如果产生异常了,那么谁调用了这个方法,就抛给谁。(来自百度)
(8).不知道是什么(共2个)
关键字 |
意思 |
备注,常用 |
enum |
枚举,列举型别 |
|
assert |
断言 |
Enum:代表一组常用常量,可用来代表一类相同类型的常量值如:
性别:
public enum SexEnum {
male, female;
}
颜色:
public enum Color {
RED, BLUE,GREEN,BLACK;
}
枚举对象里面的值都必须是唯一的。
注意:只要不完全和这些重名就好了,你可以在这些后面加上数字或字母避免完全和关键词重复就没毛病!
二.标识符:我们为自己的函数取或,包,常量,变量取名就叫标识符。那么标识符要注意那些:
- 标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。
- 不能以数字开头,不能是关键字
- 严格区分大小写
- 标识符的可以为任意长度
Java中的标识符命名规范:
1. 包名
多个单词组成时所有字母小写(例:package com.baidu)
2. 类名和接口
多个单词组成时所有单词的首字母大写(例:HelloWorld)
3. 变量名和函数名
多个单词组成时第一个单词首字母小写,其他单词首字母大写(例:lastAccessTime、getTime)。
4. 常量名
多个单词组成时,字母全部大写,多个单词之间使用_分隔(例:INTEGER_CACHE)
注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。
三.常量
代码中那些一直不变的数我们可以生成常量,所以这里首先我们就要知道常量是什么?附:简单的常量定义用final或者static
Private static Random rd1=new Random(); //实例化一个随机数生成对象。 Private final int int1=rd1.nestInt(10); //生成随机数并赋值给常量int1 Private static final int int2=rd1.nestInt(10); //生成随机数并赋值给常量int2
注意:是简单的常量定义方式,以后学了更多的知识,还可以用很多其他方法来代替定义常量,或者直接定义一个变量,保持他值在代码中始终不变,他也是一个常量。除此自己定义的常量以外还有系统已经定义好的:123456789这种直接可以使用的阿拉伯数字直接使用字母符号,true false都是常量!
1. Private static Random rd1=new Random(); //实例化一个随机数生成对象。 2. Private final int int1=rd1.nestInt(10); //生成随机数并赋值给常量int1 3. Private static final int int2=rd1.nestInt(10); //生成随机数并赋值给常量int2 4. final int BLOG="糖醋酸辣椒"; //字符串也是常量,注意常量是要大写才规范,以上那些小写的都属于不规范的!
四.变量
变量顾名思义,就是会变的量,他会在堆栈给你分配一块内存,然后你变量的名字实际是映射了这块的地址。要明白变量,还是例子说话最靠谱!
//实例:让用户输入两个数求他们的和!
import java.util.*;//照抄后面就明白了
class Calc
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
//创建一个Scanner 他会扫描出你的在控制带输入的内容,然后作为一个对象传给你。
System.out.print("请输入第一个数:");
int a = s.nextInt();
//让用户输入一个数存放在变量a中
System.out.print("请输入第二个数:");
int b = s.nextInt();
//让用输入第二个数字存放在变量b中
int c = a + b;
System.out.print(a+"+"+b+"="+c);
} }
老鸟们经验:代码要自己敲,不要复制,初学的时候最重要的就是手感和错误!
看上面代码,其中的int a int b in c 就是变量,注意他们的值,在运行的时候是不是可以接受任何值,除了不能操作int的范围,你想写 多少加多少都可以。能够在代码中随时该变储存值就是变量!简单的说,我们可以把变量看作是个盒子,可以将钥匙、手机、饮料等物品存放在这个盒子中,也可以在需要的时候换成我们想存放的新物品。
在 Java 中,我们通过三个元素描述变量:变量类型、变量名以及变量值。 int a =s.nextInt(); 其中int 就是类型,a是变量名,S。nextInt就是把你输入的值转换为int类型,他就是值!
int a = 10; 这个int是类型 a是变量名,10是值!
局部变量和全局变量,成员变量:外加一个静态全局变量,静态全局变量与全局变量的差别是:前者只能被同一源文件中的函数调用,其它文件中的函数不能调用静态全局变量。
|