part1:001基础知识点

单行注释://

多行注释:/* */

eclipse中多行注释:选定多行代码+快捷键(ctrl+/)

使用eclipse格式化代码:shift+ctrl+F

输出错误信息与调试信息:System.err.println(),System.out.println()

从控制台接收输入字符:Scanner scanner=new Scanner(System.in);//创建输入流扫描器

检查输入位数:line.length()

强制类型转换:long value=100L;byte btValue=(byte)value;将long型强制转为byte型

加密字符串与解密字符串:..=scan.nextLine()//获取用户输入  ..=passworld.toCharArray();//获取字符数组  遍历数组:用for语句

三元运算符判断奇偶:..条件运算String check=(number%2==0))?:条件结果A:条件结果B

左移运算实现乘法运算:左移n位相当于2的n次方

难点:异或运算的用法b=a^b^a  不借助第三变量实现两个变量互换:借助异或运算符"^"实现两变量高效互换:A=A^B;B=B^A;A=A^B;

求奇数运算"N%2==1",如果要考虑到负数问题,任何负数应用这个算法的结果都会等于-1


part2:002流程控制语句

if语句

用if...else或者三目运算符(? : )判断闰年。闰年公式:year%4==0&&year%100!=0||yera%400==0

验证登录信息的合法性 (equals()方法判断两字符串内容是否相同,“==”判断的是字符串对象地址)

if(!username.equals("lee"){  //判断用户名合法性

System.out.println("用户名非法");

}else if(!password.equals("123"){判断密码合法性

System.out.println("密码错误");

}else{  //通过以上两个条件判断默认通过登录验证

System.out.println("登陆成功");

}

switch语句

switch(表达式){ //该语句只支持对常量的判断,如java的byte/short/int/char类型

case 常量表达式1:语句序列1

[break;]//可选

...

case 常量表达式n:语句序列n

[break;]//可选

default:语句序列n+1

[break;]//可选

判断用户输入月份的季节

对于多个条件采用相同业务处理的情况,可以把多个case分支关联在一起,省略它们之间的break语句,而在最后一个相同的case分支中实现业务处理并执行break语句

比如下面判断冬季的语句

switch(month){

case 12:

case 1:

case 2:

System.out.println("你输入的月份属于冬季");

break;

while语句

多数情况下,遍历数组都是使用for循环语句实现。其实应用while循环语句和自增运算也可实现。

while(条件表达式){ //条件表达式结果为boolean类型,结果只能是true或false

语句序列 //循环体,在条件表达式为true时执行

}

例子:使用while循环计算1+1/2!+1/3!+...1/20!

for语句

例子

使用for循环输出杨辉三角

使用for循环输入99乘法表

遍历数组

for(初始表达式:条件表达式:循环表达式){

循环体

}


part3:003数组操作

获取一维数组的最小值思路:获取用户输入,用trim()方法去除左右空格,对输入内容进行非法检测,用split()方法将输入的字体串分割成字符串数组,并将字符串数组转换到整型数组,最后在遍历数组的同时提取最小值显示到窗体的标签控件中。

参考:http://leexy.blog.51cto.com/4136883/1303209

将二维数组中的行列互换:通过双层for循环遍历数组

参考:http://leexy.blog.51cto.com/4136883/1304048

利用数组抽取幸运观众:需要用到String类的split()方法和Math的random方法

参考:http://leexy.blog.51cto.com/4136883/1303995

利用数组设置JTable表格的列名和列宽,关键代码:

private JTable getTable(){
if(table==null){
table=new JTable();//创建表格
String[] columns={"id","姓名","性别"};//定义列名数组
int[] columnWidth={10,20,30};//定义宽数组
//创建表格数据模型
DefaultTableModel model=new DefaultTableModel(columns,15);
table.setModel(model);//设置表格数据模型
TableColumnModel columnModel=table.getColumnModel();//获取列模型
int count=columnModel.getColumnCount();//获取列数量
for(int i=0;i<count;i++){//遍历列
TableColumn column=columnModel.getColumn(i);//获取列对象
column.setPreferredWidth(column Width[i]);//以数组元素设置列的宽度
}
}
return table
}

使用按钮控件数组实现计算器界面 JButton[][] buttons=new JButton[i][j]

通过复选框控件数组实现添加多个复选框控件 JCheckBox[] boxs=new JCheckBox[labels.length]

数组排序:选择排序法、冒泡排序法、快速排序法、直接插入法、sort()方法

反转数组中元素的顺序


part4:004面向对象

自定义类:创建一个自定义的类,提供构造方法和成员方法给它,最后可以在另一个类的main方法中创建自定义类的对象

举例

public class Animal{ //自定义类
private String dog;//定义dog
public Animal(String dog){//利用构造方法初始化域
this.dog=dog;
}
public String getDog(){//成员方法,获得dog
return;
}}
再创建一个Test类
public class Test{
public static void main(String args[]){
Animal animal=new Animal("哈皮狗");
System.out.println(“我家里养了一只"+animal.getDog());
}
}

关于方法调用:温度单位转换例子-在java中使用普通方法需要先创建一个方法所在类的对象,然后通过这个对象调用这个方法。而静态方法可以直接使用类名来调用

public class Test{
public double getFahrenheit(double celsius){
double fahrenheit=1.8*celsius+32;
return fahrenheit;
}
public static void main(String[] args){
System.out.println("温度℃");
Scanner in=new Scanner(System.in);
double celsius=in.nextDouble();
/*
*静态方法:直接可以用类名调用,不过要确保上面方法是static静态方法
*double fahrenheit=Test.getFahrenheit(celsius);
*/
Test converter=new Test();//创建类的对象
double fahrenheit=converter.getFahrenheit(celsius);
System.out.println("华氏度\n"+fahrenheit);
}
}

成员变量的默认初始化值:对于基本类型的成员变量,虚拟机会自动为其进行初始化,但对于引用变量的变量,在使用之前需要进行初始化,否则会抛出NullPointerException异常。比如

private byte b;//声明基本类型变量b
private String string;//声明引用类型变量string
public static void main(String args[]){
Test init=new Test();//创建对象
System.out.println("比特类型的初始值:"+init.b);//结果:比特类型的初始值:0
System.out.println("引用类型的初始值"+init.string);//结果:引用类型的初始值null
}

关于java的基本类型与引用类型,可以参考文章:http://ajava.org/article-9-1.html

单例模式的特点在于仅能获得一个对象。为了防止其他用户创建对象,需要将构造方法设置为private的,然后提供一个一个静态方法,该方法返回这个类的对象。例子可以参考:

http://leexy.blog.51cto.com/4136883/1304452

递归算法完成汉诺塔问题求解:为了将N个盘子从A移动到C,需要先将第N个盘子上面的N-1个盘子移动到B上,这样才能将第N个盘子移动到C上。同理,为了将N-1个盘子从B移动到C上,需要将N-2个盘子移动到A上。比如有6个盘子:

public class Test{
public static void moveDish(int level,char from,char inter,char to){
if(level==1){  //如果只有一个盘子就退出迭代
System.out.println("从"+from+"移动盘子1号到"+to);
}else{  //如果有大于一个盘子就继续迭代
moveDish(level-1,from,to,inter);
System.out.println("从"+from+"移动盘子"+level+"号到"+to);
moveDish(level-1,inter,from,to);
}
}
public static void main(String[] args){
int nDisks=6;    //设置汉诺塔为6阶
moveDish(nDisks,'A','B','C');//实现移动算法
}
}

利用重载技术编写同名方法(具有相似功能不同参数的方法):当对象在调用方法时,可以根据方法参数的不同来确定执行哪个方法。方法参数的不同包括参数类型不同,参数个数不同和参数顺序不同。但不能通过返回值来区分方法。

public class Test{
public void info(){  //定义无参方法
System.out.println("普通方法:小弟弟1岁了");
}
public void info(int age){  //定义包括整型参数的info()方法
System.out.println("重载方法:小弟弟"+age+"岁了");
}
public static void main(String args[]){
Test a=new Test(); //测试无参娄info()方法
a.info();for(int i=1;i<5;i++){//测试有参数info()方法
a.info(i);
}
}
}

统计图书销售量:在类的构造方法中增加计数器来实现该功能

在Book类中定义一个静态的成员变量用来保存实例化的次数,构造方法实现计数器的功能:

public class Book{
private static int counter=0;
public Book(String title){
System.out.println("售出图书"+title);
counter++;
}
public static int getCount(){
return counter;
}
}

在Test类中创建Book类对象并输出创建对象的个数:

public class Test {
public static void main(String args[]){
String[] titles={"A书","B书","C书"};、//创建书名数组
for(int i=0;i<10;i++){
new Book(titles[new Random().nextInt(3)]);//new Random().nextInt(3)用于获得
0-2的整数
}
System.out.println("总共销售了"+Book.getCount()+"本图片");
}
}

使用字符串输出对象:通过重写toString方法来实现

public class Cat{
private String name;
private int age;
private double weight;
public Cat(String name,int age,double weight){//初始化
this.name=name;
this.age=age;
this.weight=weight;
}
public String toString(){ //重写toString方法
StringBuilder sb=new StringBuilder();
sb.append("名字"+name+"\n");
sb.append("年龄"+age+"\n");
sb.append("重量"+weight+"\n");
return sb.toString();
}
}

在main()方法中创建Cat类对象

public class Test{
public static void main(String args[]){
Cat cat1=new Cat("JAVA",12,21);//创建对象并初始化
Cat cat2=new Cat("WEB",12,21);
Cat cat3=new Cat("JAVA",12,21);
System.out.println("猫咪1号"+cat1);
System.out.println("猫咪2号"+cat2);
System.out.println("猫咪3号"+cat3);
}
}

转载于:https://blog.51cto.com/lixiyu/1349911

J2SE知识点回顾(上)相关推荐

  1. python_day02 上节课知识点回顾

    上节课知识点回顾: 1.python3和python2多版本共存问题 注:需要复制python36和python27目录下的python.exe后重命名,复制scripts下的pip.exe后重命名 ...

  2. 【运筹学】线性规划数学模型 ( 知识点回顾 | 可行解 | 最优解 | 阶梯型矩阵 | 阶梯型矩阵向量 | 基 | 基向量 | 基变量 | 非基变量 )

    文章目录 一.知识点回顾 1.线性规划三要素 2.线性规划一般形式 3.线性规划标准形式 二.线性规划解.可行解.最优解 三.阶梯型矩阵 四.阶梯型矩阵向量 五.基.基向量.基变量.非基变量 一.知识 ...

  3. 零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

  4. 微积分知识点回顾与总结(十):级数

    微积分知识点回顾与总结(十):级数 常数项级数 1.1. 正项级数及其审敛法 1.2. 交错级数及其审敛法 1.3绝对收敛与条件收敛 幂级数 2.1 阿贝尔定理(Abel) 2.2收敛半径与收敛域 2 ...

  5. 考研复试(控制工程专硕)及大学本科(物联网工程)知识点回顾(五)——其他重点内容

    复试所涉及的科目 随机问题 1.过程控制与运动控制的区别? 2.√ 模拟电子技术与数字电子技术的区别? 3.√√ I2C和SPI的区别? 4.推挽输出与开漏输出的区别? 5.√ 可编程逻辑器件与微机的 ...

  6. Android群英传知识点回顾——第四章:ListView常用优化技巧

    Android群英传知识点回顾--第四章:ListView常用优化技巧 知识点目录 4.1 ListView常用优化技巧 4.1.1 使用ViewHolder模式提高效率 4.1.2 设置项目间分割线 ...

  7. 刘大拿python_零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

  8. Linux知识点回顾之shell编程

    Linux知识点回顾之shell编程 shell编程 1 基本介绍 1.1 Shell 脚本 1.2 Shell 环境 1.3 第一个shell编程 1.4 运行 Shell 脚本有两种方法: 1.5 ...

  9. Android群英传知识点回顾——第十章:Android性能优化

    Android群英传知识点回顾--第十章:Android性能优化 知识点目录 10.1 布局优化 10.1.1 Android UI渲染机制 10.1.2 避免Overdraw 10.1.3 优化布局 ...

最新文章

  1. 基于busybox的Linux小系统制作 (initrd)
  2. 【Python基础】本地利用ssh远程连接服务器并启用远程服务器的jupyter lab并配置好anaconda的环境...
  3. Nginx负载均衡的原理及流程分析
  4. ajax post传输到后台为空?【解决方案】
  5. viterbi算法_序列比对(十四)——viterbi算法和后验解码的比较
  6. win10计算机修改底色,win10电脑如何修改登陆背景
  7. mysql5.6 with as 用法_python面试专题with 关键字与上下文管理
  8. python3下的IE自动化模块PAMIE
  9. [专栏精选]Unity中动态构建NavMesh
  10. jquery中如何获得$.ajax()事件返回的值
  11. 美国DHS向国会提交政府《移动设备安全研究》报告
  12. grafana将自己的数据库(hbase)设置为数据源
  13. paip.python错误解决22
  14. 数据增强操作(旋转、翻转、裁剪、色彩变化、高斯噪声等)
  15. C++设计模式 - 适配器模式(Adapter)
  16. 计算机病毒计算机中的程序是吗,计算机病毒是一种程序吗?
  17. 米6 / MIUI10 自带电子邮件应用设置Exchange邮箱
  18. 看过之后,今年的深信服创新大会确实有点儿不一样……
  19. Java实现 LeetCode 88 合并两个有序数组
  20. 夏普电视能用鸿蒙吗,夏普电视怎么安装第三方软件,看电视直播教程

热门文章

  1. shell 数组介绍
  2. Django实现excel导入数据库(超详细)
  3. 部落战争手游源码( 服务端+客户端+资源+开发文档)
  4. XAMPP+PhpStorm
  5. 痞子衡嵌入式:利用GPIO模块来测量i.MXRT1xxx的系统中断延迟时间
  6. 基于Springboot的特产销售平台设计与实现毕业设计源码091036
  7. 如画的水乡,如画的同里16
  8. 如何删除和添加word的脚注那个横线
  9. 中央银行调节货币供应量的三个手段
  10. 简易英文问答系统(glove.6B词向量)