【JAVA】学习笔记
对程序员来说,学习一门新的语言,最开始的代码当然是hello world!下面我们从这段代码入手,一步一步来学习Java基础知识。
class Hello{
public static void main(String[]args){
system.out.print("Hello world!");
}
}
楼主所在的公司用的是myeclipse软件,我来简单说一下创建一个文件的步骤:
打开界面,在左边空白处右击选择new->other->双击Java Project -> Project name(项目名称) ->Finish;
以上一个箭头代表一个确认项。项目存放在workspace中,这个工作空间可以自己指定。
然后右击src->选择class->pockage(文件夹名称)->Name(类名):Hello->点Hello.java编辑。
生成入口文件:
一般来说有个选项,点上对勾,创建的文件就自带头文件,如果没有勾,可以写一个Main单词,然后按住Alt + /,然后回车,快速生成入口文件。
点菜单栏的一个绿色的类似于播放的按钮,就可以在控制台查看结果了。
关键字:
在编程语言中有一些实现定义的,有着特殊意义和用途的单词。
保留字:
和关健字一样是事先定义好的,只是暂时没有特殊用途,以后某天会突然被赋予意义和被使用,因此保留下来的单词。goto和const就是Java的保留字。
标识符:
在程序中自定义的一些名称,它是由26个字母大小写,数字0-9,符号_和$组成,规定:
1.不能以数字开头,2.不可以使用关键字,3.见明知意
快捷键:
Alt+/可以快速补全
注释:
一个多行注释中不能嵌套多行注释
/**文档注释
可以自动生成文档
*/
ctrl+alt+/向下复制一行
/**/技巧:
可以使用多行注释查找问题所在,报错地。注释的代码不会被编译成字节码,不占内存。
bin目录下存放字节码文件
xJad反编译工具,将class文件转换成java文件。
常量:
固定的一个值。包括:
1.整数常量 system.out.print(10);
2.小数常量 system.out.print(10.10)
3.字符常量 system.out.print('A')
4.字符串常量 system.out.print("abc")
注意:单引号只能包含一个字符,多字符只能用双引号,双引号也可以包含单个字符。
5.布尔常量 false ,true
6.null常量 system.out.print(null)
关于进制:
0-9十进制:11(D)以数字11为例,各进制的表示方法。
0-1二进制:11(B)。
0-7八进制 :11(O)三位一体
0-9ABCDF十六进制 :11(F)四位一体
Byte字节:
一个字节等于 8个二进制单位,等于8个Bit位。
字节是最小的存储单位
1k=1024B; 1M =1024K ;1G=1024M; 1T=1024G
所以1024对于我们程序员来说,真是一个神圣的数字。
6(B)=110;
11(O) = 001 001(B)三位一体
计算机中,用到的数字,最终都会转换成二进制
数据类型转换规则:
1.运算时,两端的数据 必需要保持一致。
2.如果运算都为数值类型,会自动的吧小的类型转换为大的类型。
3.JVM在运算时,识别的最小值类型为Int。
数据类型包括:基本数据类型和引用数据类型。
基本数据类型:整数、小树、字符、布尔。
引用数据类型:类、数组、接口。
注意:字符串必需用双引号括起来。字符串拼接用加号。
无论什么类型与字符串拼接都将转换成字符串。
格式化符:format
string = string.format("姓名:%s,年龄:%d,身高:%.2f","小明",23,1.76);
/*string.format()是一个静态方法,可以规范代码。*/
格式化时:%s对应字符串,%d对应整数,%.2f表示显示2位小数。
判断前缀和判断后缀:startsWith();endsWith();
demo:
string filename="test.mp4";
if(filename.endsWith(".mp4"))
{
system.out.println("支持视频格式");
}
取余的符号规则:
-10 % -3 得 -1; 10 % -3 得 1; 符号由前面的数决定,跟是否同号无关。
myeclipse快捷键补充:
Refactor | Rename可修改包名、类名、属性名、方法名。
Ctrl+shift+F格式化代码,可读性更好。
Ctrl+F查找某个单词
equals方法:
字符串string使用equals来进行判断
String S1 = new String("nihao");
String S2 = new String("nihao");
if(s1.equals(s2)){
system.out.println("相同");
}
不能写成if(s1==s2){};
compareTo():
compareTo比较 字符串大小,按照字典顺序来进行比较。
string s1 ="liming";
string s2 ="lilei";
if(s1.compareTo(s2)<0){
system.out.println(s1+"位于前面"):
}else{
system.out.println(s2+"位于前面");
}
compareToIgnoreCase();忽略大小写比较。
逻辑运算符:
^异或 :
false ^ true //true; 相同为false,不同为true;
&与 &&短路与:
&两边表达式无论怎样都会执行
&&只要发现false,就不会执行后面的代码,返回false;
|或 ||短路或
|两边表达式无论怎样都会执行
||只要发现true,就不会执行后面的代码,返回true;
方法:
定义:一个小的功能,把一段代码存起来,以后可以重复使用。
打印字母b的方法
static void printB(){system.out.println("b");}
/*返回什么类型,定义时就用什么类型。*/
字符串拼接的方法
static string stringConcat (string str1,string str2)
{
string res = str1+str2;
return res;
}
方法的重载:
在同一个类中,允许方法的名称相同,但是方法的参数不同。我们称这样的叫做方法重载。
有了方法重载,功能相同,参数不同的方法,就不需要多次定义了。
数组:
相同的数据类型的书,有序的组成在一起。
格式:要存放的类型[] 数组名称 = new 数据类型[] {存放的内容};
例子:int[] age = new int[]{};
规则:
1.存放的数据必需有相同的数据类型。
2.存放的数据都是有序的,可通过角标来获取。
也可以先定义,再初始化:
//静态初始化:在创建数组时就已经确定了有多少元素,并把元素都放到了数组 中。
int[] ages;
ages = new int[] {21,22,23,24,25};
//如果不初始化,数组是不能使用的。
//动态初始化:一开始不知道要存哪些数组,所以先定义一个指定的空间大小。
int[] A = new int[100];
A[0] = 1;A[1] =2;
system.out.print(A[0]);
//Array Index out of Bounds Exception这句常见的报错信息是指数组越界。
获取数组的元素个数:数组名称.length;
string[] names = new string[] {"zs","ls","ww"};
system.out.println(names.length);
变量作用域:
一句话理解作用域:定义的变量只在大括号内生效。
forrach()方法:
foreach()可以实现数组快速遍历
可变参数:
(它是数组参数的一种简写,自动把...转换成数组)
static boid sum(int ... args){
int res = 0;
for(int i = 0;i<args.length;i++){
res=res+args[i];
}
system.out.println(res);
}
public static void main(string[] args){
int[] params = {1,2,3,4};
sum(1,2,3,4);
}
【JAVA】学习笔记的更多相关文章
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
随机推荐
- UML建模—EA创建Class(类图)
1.新建类图 2.添加类或接口 在类图可以捕获系统-类-和模型组件的逻辑结构.它是一个静态模型,描述存在什么,有哪些属性和行为,而不管如何去做. 说明关系之间的类和接口; 泛化. 聚合和关联是在分别反 ...
- C#语言-02.数据类型
a. 数据类型 i. 值类型:是一种由类型的实际值表示的数据类型,存储在栈内的存储空间中,由于编译器编译后将源代码中的值类型变量直接对应到唯一的存储空间上,直接访问该存储空间,故值类型的数据具有较快地 ...
- Gitflow 工作流程
目存在两个长期分支: 主分支master 开发分支develop 前者用于存放对外发布的版本,任何时候在这个分支拿到的,都是稳定的分布版: 后者用于日常开发,存放最新的开发版. 其次,开发新功能或者修 ...
- 学习总结(一)java web连接池
大家都知道,在访问数据库时要与数据库建立连接.在jdbc中,用户与数据库建立连接后,取完数据或操作完数据后,就会断开这个连接.当下次还要访问数据库时,就会重新创建连接.这样很浪费资源,尤其是网页上有数 ...
- 【数据库】8.0 MySQL入门学习(八)——创建并使用数据库、获得数据库和表的信息
1.0 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; 每台机器上的数据库列表是不同的,但是很可能有mysql和test数据库.mysql是必需的 ...
- 检测IE浏览器兼容Edge模式及IE11
document.documentMode || +(navigator.userAgent.match(/MSIE (\d+)/) && RegExp.$1) 判断布尔值
- css sticky footer布局
Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果内容足够长时,页脚块会被内容向下推送.套路为:内容 ...
- HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系
HBase1.2.2伪分布式安装(HDFS)+ZooKeeper-3.4.8安装配置+HBase表和数据操作+HBase的架构体系+单例安装,记录了在Ubuntu下对HBase1.2.2的实践操作,H ...
- 视觉库—OpenCV
视频会议软件的视频质量除了与外置设备.编码器相关外,还与视频的后处理技术相关,视频图像通过后处理技术,如图像增强.图像去噪等,图像质量会得到主观上较大的提高.而我们通常的视频后处理技术会采用开源的项目 ...
- 【IOS】Mac和IOS开发资源汇总
本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按**command+D**). 今天收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大家有知道不错的站点,可 ...