JAVASE-----JAVA语言基础(个人知识点总结回顾)
来源:互联网 发布:mac os vmware 镜像 编辑:程序博客网 时间:2024/06/02 10:23
1.JAVA由两个重要部分组成 ,一个是JDK(java development kit)开发环境,和JRE(java running environment)运行环境。
其中,JDK是核心,它包括了JAVA运行环境(JRE)、java基本类库和JAVA工具。 我们开发人员只安装JDK就可以。
2.关键字 :顾名思义是由系统定义的单词,有特殊意义,我们不能随意使用,例如用关键字做方法名,变量名等行为都是错误的。 关键字的特点是:字母全部小写。举例:常见的关键字太多了,如:public static void main class interface implents等等。我们看到的String 或者System大写了 是因为此时他们是作为类名。
3标识符:用来定义变量名,方法名,常量名的规则。组成是:26个大小写字母,数字,以及下划线_和$。 其中,要注意的是开头不能是数字,且严格区分大小写。
4命名规范(见名思意原则)
包名:全部小写。 一般情况下是域名的反写,如:com.baidu 包分为一级包和二级包。例子中:com是一级包,com.baidu是二级包。
类名和接口名:单词的首字母大写。 举例:Demo HelloWorld Collection
方法名:从第二个单词开始,单词首字母大写。 main sayHello
变量名:全部小写。 x ,i ,name
常量名:全部大写,多单词组成时单词之间用下划线_连接。 MAX_VAULE 123 分为字面值常量和自定义常量(用public final修饰的值)
5:注释
单行注释 //文字说明
多行注释 /*文字说明*/
文档注释/**文档*/ 文档注释会被java的bin目录下的javac解析成HTML文件,也就是说明书,一般包括①version 作者②version 1.0 版本 ,版本目前只有1.0.
6 变量的定义:内存中的一小块区域,指定范围内可以改变的量。 格式: 变量类型 变量名 = 初始化的值。 数据类型分为基本数据(4类八种)和引用数据类型(类、接口、数组)。其中定义长整型要加L,如1555L;定义浮点型要加F,如58.5F,原因是整数默认是int类型,小数默认是double类型。
7运算符 :算数运算符(+ - * / %)逻辑运算符(& | && || ^)位运算符(& | ^ ~ << >> >>>)、赋值运算符(=)
算数运算符(+ - * / %):用于基本的运算 其中/取整 %取余数。 值得注意的是:整数相除一定是整数,要想获得小数必须有一方是小数。
隐士转换(小——大):基本数据类型在进行运算时, 小数据类型会自动转换为大数据类型。
强制转换(大——小):基本数据类型在进行运算时,因为要求结果是小数据类型,索引需要强制转换。byte b = (byte)130;因为130默认是int类型的十进制数据,要想得到b的值,需要知道 byte范围是(-127-130),因此需要把130的二进制数据进行截取(因为byte是1个字节),然后进行原反补的操作(符号位不变,数据位改变)。
逻辑运算符(& | && || ^):&逻辑与,两边值都是true,结果才是true;&&短路与也是两边都是true结果才是true,但是不同点是:如果短路与&&左边的值是false,右边不进行判断,直接是false,而普通与&两边都会执行。 |普通或 ||短路或同上。 ^逻辑异或:相同为假,不同为真。
位运算符(& | ^ ~ << >> >>>):针对的是二进制数据,位运算的时候先将运算符两边数转为二进制数,对二进制每一位进行运算,然后 依次是 按位与,按位或,按位异或(对一个数字抑或两次数值不变),有符号左移(补0),有符号右移(补0),无符号右移。 用法:2--8效率做法:2>>2 16--4 16<<2
8 条件表达式 表达式 ?表达式1:表达式2; 其中?前的表达式结果必须是boolean类型,true——表达式1 false——表达式2。
9 程序流程控制分为三大块语句:判断语句 选择语句 循环语句
判断与选择语句 if语句和switch语句
if语句分为: if(条件表达式){语句体;} 解释:条件表达式值是boolean类型 如果是true执行语句体,false不执行;
if(条件表达式){语句体1;}else{语句体2;}同上但是false执行语句体2;
if(条件表达式){语句体1;}else if(条件表达式2){语句体2;}。。。。。。else{执行语句;}
其中需要知道的 单独else后面不能跟条件表达式。
switch语句:switch(条件表达式){case1:语句体1;break;case2:语句体2;break;case3:语句体3; break;。。。。。。defaule:语句体3;break;}注意:除了最后一个break,其他break必须有!原因:循环语句结 束标志两种:①碰到break;②运行到最后碰到}。
循环语句:for循环 格式 for(初始化值;条件语句;控制语句;){循环体} 具体 for(int x =1①;x<10②⑤;x++④){System.out.println(x);③}
while循环 格式 初始化值;while(条件语句){循环体;控制语句;} 具体int x= 1①; while(x<10②⑤) {System.out.println(x);③x++;④}
do while循环 格式 初始化值;do{System.out.println(x);x++}(条件语句) 注意:do while 语句 循环体肯定执行一次
for循环 while循环用哪一个 ? 知道循环次数用哪一个都可以 ,不知道循环次数用while。
例子for(int i=0;i<100;i++){......}就可以写成int i=0;while(i<100){i++;},不知道循环次数只能用while,如while(x>0){......}
10 函数是类中有特定功能的一小段程序。 格式:修饰符 返回值类型 函数名(形参类型 形参1,形参类型,形参2){执行语句;return返回值;}
解释: 修饰符 如public static 返回值类型 结果类型 函数名:方法名,方便调用 形参:接受 实际参数 返回值:程序结果。
11方法的调用
①调用本类中方法
静态方法(static) 可以在本类中其他方法直接调用
public class HelloWord {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="HelloWord!";
int a=0;
int b=a+1;
int result=0;
for(int i=0;i<20;i++)
{
//Add方法调用
result= Add(a,b);
System.out.println(str+" "+ result);
a+=i;
}
}
/**
* 被调用方法,这里使用了static声明为静态方法
* @param x
* @param y
* @return
*/
private static int Add(int x,int y)
{
return x+y;
}
}
非静态方法 通过类的实例化调用
public class HelloWord {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="HelloWord!";
int a=0;
int b=a+1;
int result=0;
for(int i=0;i<20;i++)
{
//Add方法调用
//类的实例化
HelloWord helloword=new HelloWord();
//通过实例化的类进行Add方法调用
result=helloword.Add(a, b);
System.out.println(str+" "+ result);
a+=i;
}
}
/**
* 被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用
* @param x
* @param y
* @return
*/
private int Add(int x,int y)
{
return x+y;
}
}
②调用外部类的方法 通过类的实例化进行调用
外部类
public class Test {
/**
* 被调用方法Add
* @param x
* @param y
* @return
*/
public int Add(int x,int y)
{
return x+y;
}
/**
* 被调用方法Sub
* @param x
* @param y
* @return
*/
public static int Sub(int x,int y)
{
return x-y;
}
}
调用
public class HelloWord {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="HelloWord!";
int a=5;
int b=a+1;
int result=0;
for(int i=0;i<20;i++)
{
//Add方法调用
//类的实例化
Test test=new Test();
//通过实例化的类进行Add方法调用
result=test.Add(a, b);
System.out.println(str+" "+ result);
result=test.Sub(b, 1);
System.out.println(str+" "+ result);
a+=i;
}
}
}
12数组与集合
数组:是内存储一系列相同类型元素的容器,好处是可以根据索引调用。
数组的遍历:应该都知道。
数组与集合的区别?
数组:长度固定。 可存储基本数据或者引用数据。 存储的数据类型必须一致。
集合:长度可变。 只能存储引用数据。 存储的数据类型可以不一致。
集合:长度可以改变的能存储不能类型数据的容器。
Collection(接口)分为list(接口)集合和set(接口)集合。 list存取有序,数据可重复。set存取无序,数据不可重复。
ArrayList类 底层是数组 查询快 增删慢 线程不安全
list Vector类 底层是数组 查询快 增删慢 线程安全 使用了synchronized方法 stack类是Vector的子类
LinkedList 底层是链表 增删快 查询慢 线程不安全
HashSet 底层是哈希表 重写了HashCode()方法和equals()方法 所以数据不能重复。
set 自然比较器 需实现Comparable接口 会调用Compare to 方法 升序排列 比较的前提是两个数据的类型是相同的 无参构造
TreeSet 底层是二叉树
比较器接口 Comparater接口 带参构造
13Map集合
map(接口)是键值对集合,是双列的。其中键是唯一的,值可以重复。
HashMap 线程不安全的,效率高 允许出现null键和null值
map
HashTable 线程安全的 效率低 不允许出现null键和null值
14.java基础算法 会单独开一贴 因为比较重要
15常用的数据结构 ArrayList Vector LinkedList HashSet TreeSet HashMap HashTable 底层是线性表 链表 哈希表
- JAVASE-----JAVA语言基础(个人知识点总结回顾)
- JavaSE知识点个人总结
- JavaSE知识点个人总结(不断更新)
- JAVASE基础回顾总结(一)
- JAVASE基础回顾总结(二)
- Java知识点总结(一)语言基础
- java知识点回顾(JavaSE、JavaWeb、数据库、JavaEE)
- JAVA基础知识点回顾
- JavaSe总结-05--Java语言基础(1)
- Java基础部分---知识点归纳---个人总结
- 编程语言系列(三)--java语言基础知识点总结
- java语言基础入门之猜拳游戏(知识点回顾)
- javaSE学习第二周基础知识点总结
- javase基础的部分知识点总结图
- 黑马程序员----【javaSE基础】个人总结--static
- Java面试知识点个人总结(1)
- java基础编程学习过程中的知识点 -- 个人总结
- javascript语言基础总结回顾
- iOS UICollectionViewCell一些小坑
- Problem P-16 Fatmouse trade
- Android Sqlite Cursor遍历数据失败
- UVA 725 Divsion(暴力枚举)
- 在eclipse上使用maven创建ejb-helloworld项目
- JAVASE-----JAVA语言基础(个人知识点总结回顾)
- Linux工作管理与系统资源查看详解
- jquery库的一个表格排序插件
- 低级定时器之QBasicTimer
- 解决datetimepicker火狐浏览器兼容性问题
- 几部小说
- mybatis 异常信息 org.apache.ibatis.reflection.ReflectionException: There is no getter for property named
- JavaScript Data Types
- visio 2013安装到Office.zh_cn\officeMUI.mis officemui.xml