java是一门编程语言,使用非常的广泛,在web开发,数据处理,java的技术栈非常的宽广.任何编程大神,都必须会java语言,未来的前景是非常的宽广的.
java代码经过编辑器会被中间字节码文件,也就是我们的.class文件.当然我们的python语言也是如此,也是编译成为中间的字节码文件,不同的是java是一门纯的面向对象的语言,然而我们的python语言,充其量就是一个脚本语言,在做大型的系统开发方面,java有着成熟的技术和框架,然而,我们的python还是比较适合做一些脚本的开发。python在人工智能,数据处理,以及计算机视觉开发很有潜力。
近年来随着人工智能技术的兴起,python的应用前景是非常的好的.但是java是不会被淘汰的,智能手机等移动终端的普及,java也会越来越火爆.
接下来,我来先说说java的基础部分,也是个人对java基础的学习的一个总结。
有些错误的地方,希望大家及时的纠正。
首先来说说java的数据类型.java是一种强制类型的语言,这点和python不同。
python是一种弱类型的语言.
在java里面,数据类型一般有以下几种.
字节整形,短整型,整形,长整形,字符类型,字符串类型,数组,单精度类型,双精度类型,布尔类型等等.
下面,就来简单的介绍下.
所谓的整形,就是带有整数类型.就是没有小数点的数字,比如数字12,33,45等等,都是整形
申请一个整形变量如下:
int a=12.
在这里会在计算机的内存里面开辟一段存储空间来存储该整数.整形默认在java里面占有4个字节的存储空间.
因此我们可以计算出整形的存储的最大数值为2的32次方.超出该范围的数据会被溢出。
在这里java并没有做出过多的维护.在一般的程序开发里面,我们不会使用那么大的数据
整形数据在程序开发最常用.
那么问题来了,计算机是如何找到该内存空间的数据的了,java提供了两种方式
1.通过变量名来获取该内存空间的数据
2. 通过引用来实现,也就是内存地址,或者叫做引用,其实就是一个意思.
长整形就是在数字的后面加上一个大小或者是小写的L,我 也忘记了。整形数据没有什么好说的。下面我们来看看字符类型.
在java里面字符和字符串是两个不同的意思,字符是由单引号括起来的单个字符。字符串是用双引号括起来的多个字符.他们的关键字也是不同的,
代码如下;
char c='t';
String c="test";
public class StringSplit {
public static void main(String[] args) {
String sourceStr = “1,2,3,4,5”;
String[] sourceStrArray = sourceStr.split(",");
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
// 最多分割出3个字符串
int maxSplit = 3;
sourceStrArray = sourceStr.split(",", maxSplit);
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
}
}
在java里面,字符串是使用双引号来表示的多个字符,这点和python有很大的不同.需要大家的注意,字符串我们可以理解为一个对象,有自己的属性和方法,z字符串由很多的方法,大家可以去Api文档去看看,这里我就不多做介绍了.相信有点基础的同学都可以看懂.
下面还是来看看代码吧,都是非常的简单的代码,注释也很详细.
package java基础2;`
**package java基础2;
public class 字符串的长度 {
public 字符串的长度() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//字符串的长度的方法.
String ch="hello";
String ch2="123 45";
int size=ch.length();
System.out.print(size);
System.out.print('\n');
System.out.print(ch2.length());
System.out.print("\n");
//获取指定位置的字符.使用charat方法.
String name="peter";
char ch4=name.charAt(0);
System.out.print(ch4);
char ch5=name.charAt(name.length()-1);
System.out.print("\n");
System.out.println(ch5);
//获取子字符串的方法.
//获取第一次出现的索引.
String str0="we are the world";
int index=str0.indexOf("e",3);
System.out.print("\n");
System.out.println(index);
//出现最后一次的索引.lastindexof。
String m="let it go!let it go";
int index2=m.lastIndexOf('t',14);
System.out.print("\n");
//最后一次出现的,也有一个参数,代表了从那个位置开始.
System.out.print(index2);
//判断字符串的结尾的内容.endwith表示的就是以什么结尾.
String t="hello java.java";
boolean b2=t.endsWith(".java");
System.out.print("\n");
boolean b3=t.endsWith(".jpg");
System.out.println(b2);
System.out.print("\n");
System.out.println(b3);
//判端字符串的首内容.
String n="新华社记者从前方发来报道";
boolean q=n.startsWith("新华社");
System.out.print(q);
```**
在这里插入代码片
package java基础2;
public class charat方法 {
public charat方法() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//字符串的数组的功能.
//将字符串变成数组的方法.tocharryArray。
String str="我是一个字符串";
//将一个字符串转换为字符数组的方法.
char ch[]=str.toCharArray();
for(char temp:ch) {
System.out.print(temp);
}
//判断子字符串是否存在.
String str1="88888B888";
boolean b=str1.contains("B");
System.out.println("\n");
System.out.println(b);
if (str1.indexOf("B")>1) {
System.out.println("B存在");
}
else {
System.out.println("hello hacker");
}
//找到子字符串是否存在.
}
}
在这里插入代码片
package java基础2;
public class java的字符串基础 {
public java的字符串基础() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// // TODO Auto-generated method stub
// // java中保存字符串的类String类。
// // 注意这里就是双引号,用双引号括起来的多个字符,称之为字符串.
// String str = "hello world";
// String str2 = "hello ", str3 = "hacker";
// System.out.println(str);
// System.out.println(str2);
// System.out.println(str3);
// 使用字符串构造方法
// 所有的文本内都可以叫做字符串.java String类来保存字符串。
// 利用字符串构造方法来实例化字符串。
String a = new String("hello world");
System.out.println(a);
String test;
test = "hello hacker";
System.out.println(test);
String c = "hello world", d = "hello hacker";
System.out.println(c);
System.out.println(d);
String m = "时间就是金钱,我的朋友";
System.out.println(m);
String data = new String("我爱我家");
String data2 = "我爱我家";
System.out.println(data);
System.out.println(data2);
// 字符数组来实现对字符串的实例化.
char ch[] = { 't', 'i', 'm', 'e' };
String ch2 = new String(ch);
System.out.println(ch2);
// 来看看下面的代码。
char ch3[] = { '时', '间', '就', '是', '金', '钱' };
String ch4 = new String(ch3, 4, 2);
System.out.print(ch4);
}
}
在这里插入代码片
package java基础2;
public class 字符串的比较 {
public 字符串的比较() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// // TODO Auto-generated method stub
// String a = new String("tom");``
// String b = new String("tom");
// if (a == b) {
// System.out.print(1);
// } else {
// System.out.print(0);
// }
//
// //等号始终比较的是在计算机内存里面的引用,由于指向的是不同的栈内存
// //所以当然两个变量是不相等的.
// //如果比较值是否相等的化,我们可以使用equals方法.
// System.out.println(a.equals(b));
String a="abc";
String b="abc";
System.out.print(a.equals(b));
System.out.println();
//忽略字符串大小写的比较.
System.out.println(a.equalsIgnoreCase(b));
//使用同一个匿名的字符串对象.
System.out.println(a==b);
String c="hello"+"java";
String d="hellojava";
//从结果可以看出的就是c和d是相等的.
System.out.println(c==d);
}
}
在这里插入代码片
package java基础2;
public class 可变字符串 {
public 可变字符串() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// // TODO Auto-generated method stub
// //java可变字符串.
// //StringBuffer字符串缓冲区
// //StringBuild
//创建可一个空的字符串方法.
StringBuffer sbt=new StringBuffer();
// String st=new String(“32”);
// // System.out.print(st);
// System.out.print(sbt);
// System.out.print(“程序运行完毕”);
//StringBuffer内置方法append方法
//相当于字符串的拼接功能.
sbt.append("门前大桥下,\n");
sbt.append("游过一群鸭.\n");
sbt.append("快来快来数一数,\n");
sbt.append("2,4,6,7,8.");
System.out.println(sbt);
//修改指定处的索引,
StringBuffer sbt2=new StringBuffer("123456");
//sbt2.setCharAt(3, "t");
//reverse将字符串反序。
StringBuffer test=new StringBuffer("同一个世界,同一个梦想");
System.out.print(test.reverse());
//删除子字符串.
StringBuffer str4=new StringBuffer("天行健,君子以自强不息");
System.out.println();
System.out.print(str4.delete(4, 7));
//StringBuffer的方法.有很多,可以查看API文档
//StringBuild的内提供了和上面相同的方法,不保证线程的同步.
}
}
在这里插入代码片
package java基础2;
public class 截取字符串的方法 {
public 截取字符串的方法() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//截取字符串的方法.Substring方法.可以指定开始位置和结束位置.
// String id=“hello python hello hacker”;
// String sun=id.substring(6,12);
// System.out.print(sun);
//字符串的替换.
//java三种替换字符串的方法.
// String str1=“馒头一文一个”;
// String str2=str1.replace(“一”, “壹”);
// System.out.print(str2);
// //reolaceall使用正则表达式来实现的.
// //字符串的分割.
// //split方法.返回的是一个字符串数组.
//通过某个符号来实现分割的方法.
//减肥一个字符串拆分为一个数组
String test=“abc,de,fg”;
String str4[]=test.split(",");
for(int i=0;i<str4.length;i++) {
System.out.println(str4[i]);
}
//字符串的分割还支持正则表达式来实现的.来看看代码.
String str="192.168.0.1";
String arr1[]=str.split("\\.");
String arr2[]=str.split("\\.",2);
// for(int i=0;i<arr1.length;i++) {
// System.out.println("["+arr1[i]+"]");
// }
//
for(int k=0;k<arr2.length;k++) {
System.out.println("["+arr2[k]+"]");
}
}
}
package java基础2;
//导入包
import java.util.Date;
public class 格式化字符串 {
public 格式化字符串() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//java API格式化字符串format方法还哟好很多的方法,可以自己取看看,很简单.
Date date=new Date();
String str=String.format("%tF", date);
System.out.println(date);
System.out.println(str);
//java Api有很多的方法,可以iqu看看。
}
}
Java Api的字符串由很多的方法,这里我们可以看看去看看API文档.
介绍完了字符串,我们还看看java的数组.
数组就是以序列的数据的集合,
数组的定义如下;
int a[]=new int(5)在这我们定义了一个整形的数组,数组的元素的个数为5个.
int a[]={12,34,56}这种定义数组的方法就是在定义数组的时候对其进行初始化的操作.
//java的数组
//如何创建java的数组。
//一维数组的初始化操作.由三种初始化数组的方法.
//创建三个元素的数组的方法。
int a[]=new int[3];
int b[]=new int[] {5,1,3};
//以上就是数组初始化的三个方法.
int c[]= {1,2,3};
System.out.println(c[2])
int d[]= {1,2,3,45};
System.out.println(d[1]);
以上就是java定义数组的三种方法.在这里,我们最常用的就是初始化的那种,数组也有很多的方法,Java定义一个数组的
下面来看看数组的一些使用.代码非常的简单,这里就不多做解释了,还是直接来看看代码吧.
数组同样通过下表来实现访问的.
package java变量;
public class 数组的遍历 {
public 数组的遍历() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// // TODO Auto-generated method stub
// // 变列二位数组通过双重的循环来实现的.
int a[][] = new int[][] { { 12 }, { 45, 56 }, { 125, 564, 123 } };
// // 输出二位数组的的元组通过双for循环来实现的.
// for (int i = 0; i < a.length; i++) {
// for (int j = 0; j < a[i].length; j++) {
// System.out.print(a[i][j]);
// System.out.print("\t");
// }
// System.out.println("");
// }
for(int i[]:a) {//输出行,使用java的foreach循环.代码更加的简单
for(int j:i) {
System.out.print(j);
System.out.print("");
}
System.out.print("");
}
}
}
package java变量;
import java.util.Arrays;
public class 数组的填充 {
public 数组的填充() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//来看看数组的填充的方法
int a[] =new int[5];
// Arrays.fill(a,8);//将数组所有的值填充为8
// for (int i=0;i<a.length;i++) {
// System.out.print(a[i]);
// System.out.print("\n");
// }
//当然,也可以从从规定的位置处填充。
int a2[]=new int[]{1,22,45,49,58,78};
Arrays.fill(a2,1,4,0);
for(int i=0;i<a2.length;i++) {
System.out.println(a2[i]);
}
}
}
package java变量;
public class 循环的嵌套 {
public 循环的嵌套() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// 可以看到嵌套的循环里面只有当里面循环执行完毕之后,才此做外面的循环。
for (int a = 1; a <= 2; a++) {
System.out.println("a=" + a);
for (int b = 1; b <= 3; b++) {
System.out.println("b=" + b);
}
}
}
}
package java变量;
public class array4 {
public array4() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//数组提供的length属性,来实现对java数组长度的求解。数组的长度就是元素的个数。
int a[]= {12,23,1,5,89,7};
System.out.println(a.length);
System.out.println(a[5]);
}
}
下面的代码是西安的是求数组里面的最大值.
package java变量;
public class array6 {
public array6() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//求n个数字的最大值.
//获取数组的长度,通过数组的length属性来实现的。
int max=0;
int a[]= {12,34,5,98,10024,56};
for (int i=0;i<a.length-1;i++)
{
if (a[i]>max) {
max=a[i];
}
}
System.out.println(max);
}
}
下面来看看冒泡法排序算法,非常的简单,解释就不用多说了还是直接来看看代码吧.
package java基础2;
public class 冒泡排序算法 {
public 冒泡排序算法() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//java的冒泡法排序的思想.
int a[]=new int[] {63,4,24,1,3,15};
for(int i=1;i<a.length;i++)
{
for(int j=0;j<a.length-i;j++) {
if(a[j]>a[j+1]) {
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("冒泡排序的结果:");
for(int temp:a) {
System.out.println("\t");
System.out.print(temp+"");
}
}
}
下面的一篇章节,我们就来看看java的流程控制结构了。今天的基础就说到这里.