• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

射雕英雄

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

我的学习之路-2-JAVA 基本语法

标识符  类名 接口名 方法名 常量名 变量名 参数名

标识符的规范

1 只能字母 数字 下划线 美元符号 

2 数字不能开头

3 在定义标识符的时候 不能用 关键字 保留字  public void  int stactic ……..    –例如: goto  function

数据类型   

1基本数据类型(8) 分为  与数字有关的(6种)  与数字无关的(2种)

2 引用数字类型   数组类型 String[]    类     接口

Java 中 默认的整数类型是int   默认的小数类型是double    

如何给一个long 变量赋值呢?答案很easy  后面加个L   long a = 456486421215345L;

float  a = 23.02f;     (double a = 23.02f; 输出后 ,精度问题 23.02000000000000000045776)

数据溢出   Integer.MAX_VALUE + 1 =Integer.MIN_VALUE;

 a++   先使用a  再 进行自加          a%2==0  取模运算 是否被2整除

与运算  短路与&& 第一个为假 就不再判断第二个了   逻辑& 都判断

或运算  短路或|| 如果第一个为真  就不再判断了  直接为真   逻辑| 俩都判断

位运算   0000 1110                 Sting 连接 直接用 +

         1100 0011

条件运算符 例如    int a =  (表达式)?(表达式1值):(表达式2值)

               if  语句  if(判断){执行内容}else{执行内容}

文档注释 /**

     *

     */   

语句注释 //                         多行语句注释 /*      */

语句块的大括号 最好别省略  局部变量别忘了初始化

A   switch 语句 也成多重分支语句  具体格式如下  switch (表达式){

                                                                                   case 值1:  

                                                                                       语句

                                                                                        break;    

                                                                  default :  

                                                                           语句

                                                                           break;}

表达式的值  long 不能作为表达式的值         byte short int char  enum    case “age” 错误(java7可以)     没有break 产生穿透现象   switch 语句可以提高性能 

1 for(初始值;判断语句;更新语句)      

2 初始值  

 While(判断语句){

 语句

 更新语句}

3 初始值

 do {语句,更新语句}

while{条件语句}

方法修饰列表   public private protected abstract static final synchronized   返回值 可以是 基本类型 或是 引用类型              

 实际参数 调用方法时候  传递的数

成员变量 就是类的属性 有默认值

构造方法 类的初始化   3项权限   可进行重载  名称与类一致   不具备返回值类型  void 也不能用   任何类都有个无参的默认构造器  new 时候执行   如果有构造方法了 系统将不再生成无参构 你要想用  就去定义吧

类 的命名规范  驼峰命名 类 A  A   对象  方法  参数  a  A 

 J2SE   Java 2 Platform Standard Edition (标准版)

  J2ME   Java 2 Platform Micro Edition (微小版)

  J2EE    Java 2 Platform Enterprise Edition (企业版)

2.Java 数据类型分为 基本数据类型(有数的和没数的) 引用数据类型(数组  类 接口)

3.java  中默认整数类型是int 小数类型是double

4 方法的重载 方法名字相同 但是参数不同  参数个数不同  返回值不同

5类定义

 一 找出类的属性

二 对类的属性进行封装

三 编写setter getter 方法

四 构造方法初始化

五 编写实现功能

六 引用调用

字符编码  ASCII 采用一个字节编制,主要针对英文编码

ISO-8859-1 国际化标准组织或ISO制定的,主要为西欧语言中字符编码,和ASCII兼容

GB2312、GBK、GB18030  主要是汉字编码,三种编码从容量上是包含关系

Unicode 是统一全世界所有文字编码    有几种实现UTF-8,UTF-16,UTF-32

对象内存分析 (小知识)

Stack—栈,Heap—堆。:

在Java里面Heap和Stack分别存储数据的不同。

      

      Heap(堆)

      Stack(栈)

 JVM中的功能

     内存数据区    

               内存指令区

 存储数据

     对象实例

 基本数据类型, 指令代码,常量,对象的引用地址

1. 保存对象实例,实际上是保存对象实例的属性值,属性的类型和对象本身的类型标记等,并不保存对象的方法(方法是指令,保存在stack中)
   对象实例在heap中分配好以后,需要在stack中保存一个4字节的heap内存地址,用来定位该对象实例在heap中的位置,便于找到该对象实例。

2. 基本数据类型包括byte、int、char、long、float、double、boolean和short。
    函数方法属于指令

 =======================       

 引用网上广泛流传的“Java堆和栈的区别”里面对堆和栈的介绍;

 "Java 的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。"

        “栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。 ”

 可见,垃圾回收GC是针对堆Heap的,而栈因为本身是FILO - first in, last out. 先进后出,能够自动释放。 这样就能明白到new创建的,都是放到堆Heap!

寄存器  stack(速仅次寄,所有东西必须明确生命周期,基本数据类型,对象引用地址)  heap(对象,速度慢于stack   动起来)   常量存储区  程序代码       硬盘  长期保存数据

.class文件 ---  ClassLoader---JVM 的内存(stack heap 方法区 )(主要放类的基本信息 类的定义 static 数据) 

NullPointerException  欠 new 

匿名对象 new Person();

String   类   String abc = “hello”   String abc = new String(hello);  两种方式  THINKING

如何判断字符串是否相等 == 地址  a.equals(b)  内容相等  

字符串池  概念 String str1 =“hello ”     String  str2 = new String(“hello”);创建了 两个对象   字符串转化 String str =1223 + “” ;        str.intern() 自动将连接的字符串 存入 池中

posted on 2013-12-26 10:06  射雕英雄  阅读(197)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3