变量初始化

未初始化的变量不能被使用。声明一个对象时要为他分配内存

Object obj=new Object();

int对象初始化时要为他指定内存。

int   i = 10;
int[] a = new int [10];

对象组:

Object[] obj=Object[10];//创建对象指针组。指向地址
for(int i=0;i<10;i++)obj[i]=new Object   //为对象指针组分配内存。

对象组内的变量在内存中不是连续的。
任何数组对象都有一个成员变量都有.length成员,存有数组的长度。

obj[i].length;

二位数组的声明和初始化

int[][] a=new int[2][3];//创建二维矩阵数组
for(int i=0;i<a.length;i++){
    for(int j=0;j<a[i].length;j++)a[i][j]=9;
}int[][] a = new int a[2][];//1、可以是不同长度 2、数组生成时必须指定长度。
a[0]=new int [5];
a[1]=new int [6];

运算符

运算符:一元二元三元。算数关系逻辑。

a+b;
a-b;
a*b;
a/b;
a%b//和被除数符号位一致,和被除数符号位无关。
a++;
a--;//自增自减

算术运算的结果的类型不能低于int类型。低于Int类型的数据自动提升为int。

byte b=0;
byte b1=6;
byte b2=6;
b=b1+b2;//错误
int i=0;
i=b1+b2;//正确
b=(byte)(b1+b2);//正确

强制转化运算:砍掉多余的字节。

int i=1000;
byte b=(byte) i ;//i=-24

浮点数转化为整数:砍掉小数

x = x op y;
x op = y;byte x=0,y=1;
x=x+y;//编译错误提升类型为了int
x+=y; //不会出错。会进行强制数据类型转化。

小类型可以赋值给大类型,但是大类型给小类型赋值就会报错。

大小关系从小到大:byte short int long float double 
byte[] i...;
int[] j...;
i=j;//报错
j=i;//报错

位移运算

>>//右移
<<//左移
>>>//无符号移位。符号位永远都补0

左移有可能改变符号位(溢出)。

int i=...;
i>>33;
i>>1;
结果相等。虚拟机会将33%32后对i进行移位

逻辑运算 优先级低于算术运算
与或非,位反运算。

i=~i;//每个比特位取反后加1

优先级

&>^>|
&& ,  || 只接受boolean类型的数据。

短路的运算符:

function_a() && function_b()
当function_a()为假,就不会解析function_b()可以理解为function_b()不会运行。

三元运算符

a?4:4.5
//整个表达式的类型由后面两个操作数最大的类型来确定。上面的表达式返回范围在{4.0,4.5}之中。

命名冲突

//可以定义包来解决命名冲突的问题。
package a;
a.Object;
//对类的名称进行了延长

包名冗余:多层包结构

import a,b,c.Student;
//在类声明之前在package之后

java,javax是java官方定义的包名前缀
声明包名时不能用java和javax开头

import java.util.*;
import java.io.*;
import java.net.*;
import java.sql.*;class A{java.util.date;
}

在源文件时声明包:

package a;
public class Helloworld{public static void main(string arg[]){System.out.println("hello world ");}
}

公开类保存为文件时,文件名必须和类名一致。
以上文件编译时必须加上javac -d选项。不加这个会丢失包的信息。结果就是找不到这个包

>javac Helloworld -d+文件夹名,缺省则存在当前目录。
>java a.Helloworld

文件夹的好处:1、存放同名文件,2、名称分类管理。
包的作用与之类似。
编译时编译器会将包的信息将转化为文件夹的层次结构。

path 变量:可执行程序的搜索目录。
所有包名小写。

javac xxx.java -d -classpath (-c)
//-classpath 用来导入类路径分隔符用分号(windows),ubuntu 苹果用冒号。

java文件在发布时用的是.jar文件。
用jar命令打包

继承

java只有公有继承,子类继承父类的一切特征。并且是单一继承

    //默认java.lang.Object为所有类的基类。//java.lang为java的原包,自动导入。

访问权限

//访问权限 private public protect
//没有对应的修饰符为同包权限。
package a;
class student{private int age;//只能在类体中访问char[] TeacherName;
}
class teacher{//可以访问TeacherName;
}

保护权限:

public class teacher{protected float money;
}
//同包可访问,派生类可访问。

派生用extends关键字。
protected 只能用子类名来访问父类中的某个成员。
不能直接用父类的名来访问。

public class boss extends teacher{public static main(string arg[]){teacher t=new teacher();t.money++;//报错boss b=new boss();b.money ++;//正确}
}

同包权限:

class A{int i=new int;
}//只能在这个中访问

修饰符

final

final int i;
i=5;
//之后再不能对i赋值

final后跟初始值,可以用来修饰变量也可以用来修饰类,修饰符之间没有顺序要求

final class A{//A没有子类final void a(){//a不允许被覆盖}
}

static

class student{static int ClassNum;//与任何实例无关,有无对象存在ClassNum有一只存在。(类共享)//要通过类名来访问类的静态成员。相当于全局变量。
}
System.out=null;//错误
//System.out 是final不允许改值,可以通过类名访问,所以是static public

JAVA笔记(2)变量初始化,数组,包,继承,修饰符相关推荐

  1. 静态成员调用java,Java 反射 静态变量 静态方法 静态成员 调用 获取修饰符 判断是否为静态...

    当使用Java反射机制操作类成员时,传入对象的参数改成传入null package com.zuozuo.test; import java.lang.reflect.Field; import ja ...

  2. Java中静态变量与静态方法的继承

    看下面的代码: public class Demo {public static void main(String[] args) {// 子类SonB继承父类Father,子类可以获取父类的所有属性 ...

  3. JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配

    JAVA基础-栈与堆,static.final修饰符.内部类和Java内存分配 发布时间: 2013/01/12 22:29 QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 百度空间 百度搜藏 开心网 ...

  4. 面向对象4(匿名对象、内部类、包、修饰符、代码块)

    1.匿名对象 指在创建对象的时候,只有创建语句,没将对象地址赋值给某个变量 new Person(); 1.1 特点 1.创建时,可直接使用,没有变量名 new Person().eat(); 2.匿 ...

  5. C++基础学习(02)--(数据类型,变量类型,变量作用域,常量,修饰符类型)

    文章目录 目录 一. 数据类型 C++ 中的数据类型 typedef enumeration枚举类型 c++中变量类型 二.变量作用域 三.常量 四.修饰符类型 目录 一. 数据类型 C++ 中的数据 ...

  6. 《Java SE实战指南》10-01:特性修饰符概述

    内容导航: 前言 1.定义 2.使用场景 前言 通过前面的学习,我们基本掌握了Java编程语言中项目结构.类结构和对象.词法结构,还学习了访问级别修饰符.数据类型.运算符.流程控制等基础知识,接下来, ...

  7. 读thinking in java笔记(四):初始化

        随着计算革命的发展,"不安全"的编程方式已逐渐成为编程代价高昂的主因之一.     初始化和清理(cleanup)正是涉及安全的两个问题.许多C程序的错误都源于程序员忘记初 ...

  8. Java笔记017-类变量和类方法、理解main方法语法、代码块、单例设计模式、final关键字

    目录 面向对象编程(高级部分) 类变量和类方法 类变量-提出问题 传统方法解决 问题分析: 类变量快速入门 类变量内存布局 什么是类变量 如何定义类变量定义语法: 如何访问类变量 定义语法: 类变量使 ...

  9. Java类中变量初始化顺序

    下面代码显示了静态初始化代码块,非静态实例初始化代码块,构造函数 等在Java中从代码载入内存到代码执行过程的执行顺序: import static net.mindview.util.Print.* ...

最新文章

  1. CentOS 7安装fail2ban+Firewalld防止SSH爆破
  2. python算法与数据结构-选择排序算法
  3. 机器学习-回归之逻辑回归算法原理及实战
  4. mysql表的视图怎么建立_MySQL如何创建视图
  5. 云片短信php接口_php与阿里云短信接口接入
  6. VC++ 6.0(英文正版)安装及其编译注意事项
  7. keyevent 封装_adb shell input keyevent 控制按键输入的数值(收藏版)
  8. 验证输入是否满足条件
  9. 水晶报表基础入门——6.交叉报表设计技术
  10. 如何在Mac上自定义控制中心
  11. python好看的绘图_【Python教程】绘制漂亮的柱状图
  12. 面试必掌握的Mysql的11个问题
  13. JAVA集合容器源码解析
  14. 对于quartz定时任务设置结束时间
  15. [找规律] 三角形个数(牛客+找规律+思维+代码优化)
  16. 【转】Excel 使用技巧集锦——163种技巧
  17. GGSN与SGSN简介
  18. 解决虚拟机下光标闪烁问题
  19. PIM SM RP控制原理与实验
  20. sqlzoo-day7

热门文章

  1. 华为荣耀Linux笔记本评测,华为荣耀MagicBook Pro评测~~已使用半年!!!
  2. wamp3.0.6配置https + Nginx转发 + 满足微信小程序的接口调用域名
  3. 仿网易音乐听歌识曲-麦克风动画
  4. 高德地图模拟行车轨迹效果
  5. 是神话还是泡沫?“千元难求”片仔癀大股东首次减持,传递什么信号?
  6. 华为海思家族再添新成员:麒麟980规格亮相!!!
  7. uniapp自定义的tabbar切换页面时不加载onload、onshow问题
  8. 考研英语 小作文模板
  9. 邮箱自动回复设置(软件使用)
  10. 英雄联盟怎么解除小窗口_英雄联盟手游劫怎么出装-英雄联盟手游劫出装推荐...