上篇讲了一些概念之类的知识点,现在继续总结知识点:

1、用户自己在控制面板输入内容是如何实现的:java中有一个类可实现这个功能

类Scanner:

import java.util.Scanner;
Scanner in=new Scanner(System.in);
int x=in.nextInt();

可以由这三句代码来表示用户输入一个整形数据。

2、逻辑运算符

逻辑运算符有什么用:用于连接两个boolean型的表达式。

比较运算符比较完必定会有结果且是Boolean型

&的运算特点:&运算只要一边一个是false,结果肯定是false,只有两边都是true,结果才是true。

&     与

|    或

^  异或

!  非

&&  短路与

||  短路或

在计算机中,非0即真,0为假。一个数异或同一个数两次,结果还是这个数。

逻辑或:或一则一    逻辑与:全一才一

与与短路与的区别?

与:先计算左边表达式,在计算右边表达式,最后做运算,无论左边运算结果是什么,右边都运算。

短路与:先计算左边表达式,如果为真,在计算右边表达式,如果为false直接返回false。如果左边运算结果为false右边不需要参与运算。

短路或与或的区别与短路与与与的区别一样。

3、位移运算符:

左移:a<<b 将二进制的a逐位左移b位,最低位空出的位补零。

无符号右移:a>>b 二进制的a逐位右移b位,最高位空出的位补原符号位。

带符号右移:a>>>b 将二进制的a逐位右移b位,最高空出的位补零。

<<  左移      3<<2=12
>> 右移 3>>1=1
& 与运算 6&3=2
| 或运算 6|3=

左移几位就是该数据乘以2的几次方。

右移几位就是该数据除以2的几次幂。

4、三目运算符:x?Y:Z

x为Boolean型的表达式,先计算x的值,若为true,整个三目运算的结果为Y,否则为Z。

if(a>1)
b=100;
else
b=200; 可以转换成三目运算: b=a>1?100:200;

5、if与switch的区别:

if

  1:对具体的值进行判断。

  2:对区间的判断。

  3:对运算结果是Boolean类型的表达式进行判断。

switch

  1、对具体的值进行判断。

  2、值得个数一般都是固定的。

对于几个固定的值进行判断,建议使用switch,因为switch将具体的答案加载进内存,效率会高一些。

6、循环语句有三种情况:while  , do-- while   ,for

第一种:while的格式:

while(条件表达式){

  执行语句

}

第二种:do--while的格式:

do{

  执行语句

}while(条件表达式);

第三种:for(;;){

  执行语句

}

do——while的特点:条件无论是否成立,循环体至少执行一次。

for与while的特点:

(1)、for和while可以互换

(2)、格式上的不同,在使用上有点小区别,如果需要通过变量来对循环体进行控制,该变量值作为循环增量就体现出来来了。

无限循环的用法:

  while(true){}

  for(;;){}

什么时候使用循环结构呢?

(1)、当对某些代码执行很多次的时候,使用循环结构。

(2)、当对一个条件进行一次判断时用if语句,而对一个条件进行多次判断时,可以使用while语句。

注意:在使用循环时一定要明确哪些语句需要参与循环,那些不需要。循环通常需要定义条件,需要控制次数。

7、break与continnue的用法。

break:跳出。break作用的语句,要么是switch语句,要么是循环语句,当break单独存在时,其后面不要定义其他语句,执行不到。

break跳出单前所在的循环,如果出现了循环嵌套,break想要跳出指定的循环,可通过标号来完成。

continue:继续。结束本次循环继续下次循环。

作用的范围是循环结构,如果continue单独存在时下面不要有任何语句,也执行不到。

8、函数:

函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。

函数的格式:

  修饰符 返回值类型 函数名(参数类型,形式参数){

    执行语句;

    return 返回值;

  }

如何定义一个函数?

  通过两个明确来完成:

  一:这个功能的结果是什么?

  二:这个功能实现过程中是否需要未知内容参与运算?

  注意:返回值类型和参数类型没有直接关系。

  总结:没有具体的返回值时,返回值类型用void表示(也可以不写)。

函数的重载:

  在同一个类中,允许存在一个以上的的同名函数,只要他们的参数个数或者参数类型不同即可。

重载的特点:

  与返回值类型无关,只看参数列表。

重载的好处:

  方便于阅读,优化程序设计

int add(int x,int y){return x+y;}
int add(int x,int y,int z){return x+y+z;}
double add(double x,double y){return x+y;}

9、数组的声明:

声明一:int x[];

声明二:int []x=new int[3];

声明三:int []x=new int[]{2,4,6};

    int []x={1,3,4,5,6};

求数组的长度:x.length

对数组操作最基本的操作就是存和取,核心思想就是对角标的的操作。

使用数组常见问题:空指针异常(Null PointerException);  数组越界异常(ArrayIndexOutOfBoundsException)

数组常见操作:获取最值(大和小),排序(选择,冒泡排序),折半查找(二分查找)

选择排序法:每一趟从待排的数据元素中选出最小的一个元素,顺序放在已排好序的数列的最后,直到全部待排的数据元素排完。选择排序法是不稳定的排序方法。

选择排序部分代码:

for (int i=0;i<x.length-1;i++){
for(int y=i+1;y<x.length;y++){
if(x[i]>x[y]){
int temp;
temp=x[y];
x[y]=x[i];
x[i]=temp;
}
}
}

冒泡排序法:从后往前或者从前往后

比较相连的元素,如果第一个比第二个大就交换他们,对每对相连元素做相同的工作,从第一队到最后一对,在这一点上,最后得数应该是最大数。

持续每次对越来越少的元素重复上次的步骤,直到没有一对数字要比较,相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。

冒泡排序部分代码:

for(int x=0;x<arr.length-1;x++){
for(int y=0;y<arr.length-1-x;y++){
if(arr[y]>arr[y+1]){
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}

什么时候使用数组?

  如果数据出现了对应的关系,而且对应关系的一方是有序的数字编号,并作为角标使用,影响到数组的使用,就可以将这些数据存储到数组中。

  根据运算的结果直接查数组中对应的元素即可,这种方式称为查表法。

二维数组:

格式一:int [][]arr=new int [3][2];

  定义了名称为arr的二维数组,二维数组中有三个一维数组,每个一维数组有两个元素。

格式二:int [][]arr=new int[3][];

  二维数组中有三个一维数组,每个一维数组都是默认初始化值null。

格式三:int [][]arr={{},{},{}};

arr.length :二维数组长度,也就是一维数组的个数

arr[1].length  :二维数组中角标为1的一维数组长度。

10、(未完。。。)

java学习笔记(2)的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  4. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  5. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  6. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  7. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  8. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  9. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  10. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

随机推荐

  1. centos6.5安装elasticsearch

    java下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmles下载地址 : ...

  2. Fight my work!

    来这个公司第一天工作, 上来就是装ubantu系统,对于玩linux玩的不熟的我.还是相当吃力的, 反正有问题尝试着自己解决,不会就问, 压力还是很大了. 学了一下企业的历史,理念等相关信息,也没重点 ...

  3. 快速掌握、学习HTML的方法

    链接 超级链接用<a>标签表示,href属性指定了链接到的地址.<a>标签可以包含文本,也可以包含图片. 点击查看效果 <a href="http://deer ...

  4. electrica writeup

    关于 caesum.com 网上上的题目,分类有Sokoban,Ciphers,Maths,Executables,Programming,Steganography,Misc.题目有点难度,在努力奋 ...

  5. 【Java EE 学习 57】【酒店会员管理系统之分页模板书写】

    分页一直是一个比较麻烦的问题,特别是在我做的这个系统中更是有大量的分页,为了应对该问题,特地写了一个模板以方便代码重用,该模板包括后台分页的模板.前端显示的模板两部分. 一.分页分析 分页需要三种类型 ...

  6. Sql server2012还原备份文件语句

    --sql2012还原sql2008语句 --选择master数据库,新建查询 输入下面sql语句 --选择兼容模式(sql 2008)创建数据库db(还原时db写成原生数据库名称) RESTORE ...

  7. Android学习资源整理

    官方文档:https://developer.android.com/guide/index.html (万万没想到居然有中文) 网友整理的学习笔记,挺不错的 http://www.runoob.co ...

  8. Python-面向对象

    面向过程变成:函数式变成,C程序等 面向对象编程:C++,Java,Python等   类和对象: 类:是对事物的抽象,比如人类.球类 对象:是类的一个实例,比如足球.篮球   实例说明: 球类可以对 ...

  9. Ubuntu菜鸟入门(六)—— 有道词典安装

    一.在有道辞掉官网上下载安装包: youdao-dict_1.1.0-0-ubuntu_amd64.deb 二.安装 1.打开下载目录,进行安装 sudo dpkg -i youdao-dict_1. ...

  10. Java 之 数据库

    1.SQL--结构化查询语言 a.分类:①DDL--数据定义语言 ②DQL--数据查询语言 ③DML--数据操作语言 ④DCL--数据控制语言 b.DDL:包括对数据库的创建.使用.删除,对表的创建. ...