Java 从入门到精通随笔1
1.java中的main方法必须声明为public static void。String args[]是一个字符串类型的数组,是main()方法的参数。
2.基本数据类型
Java有8种基本数据类型:数值型(整数类型(byte、short、int、long),浮点类型(float,double)),字符型,布尔型。
3.整数类型
byte:8位 -128~127
short:16位 -32768~~32767
int:32位 -2147483648~2147483647
long:64位
4.浮点类型
单精度float:32位 声明需要在数据后加F或f
双精度double:64位
5.字符类型
char:16位 用于储存单个字符
6.布尔类型
true
false
7.标识符
标识符可以简单理解为一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。
8.声明变量
9.声明常量
在程序运行过程中一直不会改变的量成为常量,通常被称为"final变量"。常量在整个程序中只能被赋值一次.为所有对象共享。
final 数据类型 常量名称[=值]
常量命名大多使用大写字母表示.
10.变量作用域
成员变量
在类体中所定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可以分为两类:静态变量和实例变量。
class var{
int x=45;//实例变量
static int y=90;//静态变量(类变量)
}
局部变量
在类方法体中定义的变量称为局部变量。局部变量只在当前代码块中有效。
public class Val {
static int items = 3;//成员变量
public static void main(String args[]){
int times = 4;//局部变量
}
}
11.移位操作(适用于byte int short long)
对数据按二进制进行移位操作
<<左移
>>右移
>>>无符号右移
一个数左移n位,就是将这个数乘以2^n;一个数右移就是将这个数除以2^n。
12.三元运算符
条件式?值1:值2
条件值为true整个表达式取字1,否则取值2
13.for循环语句
for (表达式1;表达式2;表达式3)
表达式1:初始化表达式,负责完成变量的初始化
表达式2:循环条件表达式,布尔型,制定循环条件
表达式3: 循环后操作表达式,负责修整变量,改变循环条件。
14.字符串查找
indexOf(String s)//搜索字符或字符串首次出现的位置
lastIndexOf(String s)//搜索字符或字符串最后一次出现的位置
15.获取指定索引位置的字符
str.charAt(int index)
16.字符串的比较
'=='是比较两个字符串的地址是否相同
要比较两个字符串的内容是否相同应使用equals()方法和equalsIgnoreCase()方法
使用equals()进行比较时区分大小写,equalsIgnoreCase()方法忽略大小写来进行字符串长度和内容的比较。
17.compareTo()方法按字典顺序对两个字符串进行比较。
该比较基于各字符的Unicode值,
str.compareTo(String otherStr)
如果按字典顺序此String对象位于参数字符串之前,则比较结果返回一个负整数;位于之后返回一个正整数;相等返回0
18.字符串的大小写转换
str.toLowerCase()将String转换为小写。如果字符串中没有需要转换的字符,将原字符串返回;否则返回一个新的字符串,原字符串中所有字符转换为小写。
str.toUpperCase()将String转换为大写。如果字符串中没有需要转换的字符,将原字符串返回;否则返回一个新的字符串,原字符串中所有字符转换为大写。
19.数组查询
Arrays类中binarySearch()方法,用二分法来搜索数组,获取指定对象。该方法返回搜索元素的索引值。
20.静态变量、常量和方法
由static关键字修饰的变量、常量和方法被称为静态变量、常量和方法。
静态成员属于类所有,区别于个别对象,可以在本类和其他类中使用类名和"."运算符调用静态成员。
在Java中规定不能将方法体内的局部变量声明为static的。
21.对象的比较
equal()是String类中的方法,它用于比较两个对象引用所指的内容是否相同;‘==’运算符比较的是两个对象引用的地址是否相同。
22.方法的重写
当重写父类方法时,修改方法的修饰权限只能从小范围到大范围改变。例如父类中的dosomething()方法的修饰符为protected,继承后子类中的dosomething()的修饰权限只能为public不能为private。
在实例化子类对象时,java编译器会在子类的构造方法中自动调用父类的无参构造方法。
23.方法的重载
方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要这些方法的参数和个数不同即可。
24.Java转型问题
父类引用指向子类对象,而子类引用不能指向父类对象。
把子类对象直接赋给父类引用叫向上转型(upcasting),向上转型不用强制转换。
把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转换。
public class Father{
//doSentence;
}
public class Son extends Father{
// doSentence;
}
public static void main(String args[]){
Father f1 = new Son() ;//向上转型,将子类对象转为父类对象。
Son s1 = (Son)f1 ; //向下转型,把父类对象转为子类对象。
//Father f2 = new Father();
//Son s2 = (Son)f2 出错,子类引用不能指向父类
}
例:
class Animal{
public void eat(){
System.out.println("Animal eat");
}
}
class Bird extends Animal{
public void eat(){
System.out.println("Bird eat");
}
}
public class test{
public static void main(String args[]){
Animal a1 = new Bird();
a1.eat();
System.out.println();
Bird b1 = (Bird)a1;
b1.eat();
}
}
输出
Bird eat Bird eat
Java 从入门到精通随笔1的更多相关文章
- 《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路
以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx ... 一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门.我以前在学校的时候自觉过很多门 ...
- 《Java从入门到精通》src0-8
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello wo ...
- 《java从入门到精通》学习记录
目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...
- cucumber java从入门到精通(4)Scenario Outline及数据驱动
cucumber java从入门到精通(4)Scenario Outline及数据驱动 到目前为止,我们的TodoList类工作良好,不过离我们的预期--任务清单系统还是有不少差距,究其原因不过如下: ...
- cucumber java从入门到精通(3)简单实现及断言
cucumber java从入门到精通(3)简单实现及断言 上一节里我们定义了step的java代码实现文件,step就是测试步骤及断言的集合,我们先定义出来,以后可以驱动开发以及在持续集成时重用. ...
- cucumber java从入门到精通(2)用代码定义步骤
cucumber java从入门到精通(2)用代码定义步骤 上一节里我们定义了feature文件,feature文件就是自然语言描述的用例文件,它有一定的章法,具体的潜规则是: 使用Feature关键 ...
- cucumber java从入门到精通(1)初体验
cucumber java从入门到精通(1)初体验 cucumber在ruby环境下表现让人惊叹,作为BDD框架的先驱,cucumber后来被移植到了多平台,有cucumber-js以及我们今天要介绍 ...
- Java从入门到精通一步到位!
Java作为近几年来非常火的编程语言,转行来做Java的人不计其数,但如今真正的人才仍然匮乏,所以学习Java一定要有一个系统的学习规划课程.阿里云大学帮您规划Java学习路线可以帮助您从一个小白成长 ...
- Java从入门到精通——基础篇之JSTL标签
一.语言基础 EL(Expression Language)表达式,目的:为了使JSP写起来更加简单.提供了在 JSP 中简化表达式的方法. 二.分类 核心标签库:提供条件判断.属性访问.URL处理及 ...
随机推荐
- Runtime Error R6034 Application has attempt to load the C runtime library incorrectly
1.问题描述 vs2015 去开发一个写入pg数据库的程序,使用libpqxx.dll,libpq.dll,这个库文件之前是用vs2008的程序中复制过来的,基于的运行时库应该是vs2008,现在开发 ...
- CSS效果篇--这里有你想要的CSS3漂亮的自定义Checkbox各种复选框
在原来有一篇文章写到了<CSS效果篇--纯CSS+HTML实现checkbox的思路与实例>.这篇文章主要写各种自定义的checkbox复选框,实现如图所示的复选框: 大致的html代码都 ...
- docker基础知识普及(一)
背景 这篇内容是之前给部门同事培训时写的文档,旨在传达一些docker相关概念,有个基本印象,当然,以下内容都来自网络,我只是个搬运工.具体操作在下篇文章中 一.什么是docker? 1. Docke ...
- beta week 2/2 Scrum立会报告+燃尽图 07
此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9959 一.小组情况 组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名: ...
- Java——重写hashCode()和euqals()方法
1.顺序表的问题 查找和去重效率较低 对于这样的顺序表来说,如果需要查找元素,就需要从第一个元素逐个检查,进行查找.对于需要去重的存储来说,每次存入一个元素之前,就得将列表中的每个元素都比对一遍,效率 ...
- el-mement表单校验-校验失败时自动聚焦到失败的input框
思路:调用input的focus()事件,聚焦到失败的input框上, 问题:如何获取失败的input框,结合element的校验方法,查看可以提供入口的地方 调用this.$refs[formNam ...
- electron关于无边框窗口无法拖拽移动以及点击事件失效的问题
为了使窗口无边框,使得在某些时候让项目看起来更美观,所以在创建窗口的时候通过设置 frame 属性的值为 false 来创建无边框窗口.但是无边框窗口会产生无法移动的问题,对于这个问题我们可以在渲染进 ...
- openerp学习笔记 单据自动编号(编码规则)
说明: 单据自动编码允许定义 单据前缀+按当前年.月.日.时.分.秒+流水号+单据后缀 单据自动编号允许按所有公司统一编号或按分公司单独编号 单据自动编号中的流水号部分未按月重新编号,不断累计,当超出 ...
- SOA简介
1.你可以把SOA理解为一种概念,总的来说就是面向服务的设计. 这个概念简单来理解就是把之前所谓的模块划分做成服务. 比如之前的日志模块,需要引用你的dll,调用你的写日志方法来写日志.这样当有多个系 ...
- mysql的基本操作命令
1,数据库操作: create database 数据库名 例:create database test; 亦或 create database test charset=utf8; 相关操作: 显示 ...