- 博客(95)
- 收藏
- 关注
原创 【JavaWeb】jQuery(上)
jQuery,顾名思义,也就是 JavaScript 和查询(Query),它就是辅助 JavaScript 开发的 js 类库。Dom 对象1.通过 getElementById()查询出来的标签对象是 Dom 对象2.通过 getElementsByName()查询出来的标签对象是 Dom 对象3.通过 getElementsByTagName()查询出来的标签对象是 Dom 对象4.通过 createElement() 方法创建的对象,是 Dom 对象。
2023-04-26 00:57:14 993 1
原创 【JavaWeb】HTML&CSS
Hyper Text Markup Language (超文本标记语言) 简写:HTML HTML 通过标签来标记要显示的网页中的各个部分。网页文件本身是一种文本文件, 通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画 面如何安排,图片如何显示等)5、创建 HTML 文件。1.标签的格式:封装的数据2.标签名大小写不敏感。3.标签拥有自己的属性。i. 分为基本属性:bgcolor="red" 可以修改简单的样式效果。
2023-04-21 23:27:47 832
原创 【Java集合】Iterator迭代器remove()的使用以及使用foreach循环遍历集合元素
1、 Iterator可以删除集合的元素,但是是遍历过程中通过迭代器对象的remove方 法,不是集合对象的remove方法。
2023-03-25 23:24:16 1885
原创 【Java集合】使用Iterator遍历Collection以及迭代器Iterator的执行原理
类似于“公 交车上的售票员” 、 “火车上的乘务员” 、 “空姐”。
2023-03-23 22:58:23 558
原创 【Java集合】Collection接口中的常用方法
Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法 既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List)实现。在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都 当成 Object 类型处理;从 JDK 5.0 增加了泛型以后,Java 集合可以记住容 器中对象的数据类型。
2023-03-21 21:56:41 1436
原创 【Java集合】Java框架与数组的概述对比以及涉及到的API
一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。>数组初始化以后,长度就确定了。>数组声明的类型,就决定了进行元素初始化时的类型>数组初始化以后,长度就不可变了,不便于扩展>数组中提供的属性和方法少,不便于进行添加、删除、插入等操作,且效率不高。同时无法直接获取存储元素的个数>数组存储的数据是有序的、可以重复的。
2023-03-18 15:40:03 562
原创 【Java注释】注释的理解以及常见的Annotation示例
在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE/Android中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。
2023-03-15 18:00:53 400
原创 【Java枚举类】使用enum关键词定义的枚举类实现接口
3.若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法。2.若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。1.和普通 Java 类一样,枚举类可以实现一个或多个接口。如果我们希望每一个对象调用的show()展现不一样的内容。
2023-03-14 22:39:22 1831
原创 【Java枚举类】Enum类的主要方法
可以把一个字符串转为对应的枚举类对象。要求字符 串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。可以把一个字符串转为对应的枚举类对象。要求字符 串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。返回当前枚举类对象常量的名称。Enum类的方法如下图所示。
2023-03-12 13:43:48 1903
原创 【Java枚举类】使用enum关键词定义枚举类
3.枚举类的所有实例必须在枚举类中显式列出(, 分隔;1.使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类。1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";2.声明Season对象的属性:private final修饰。2.枚举类的构造器只能使用 private 权限修饰符。4.必须在枚举类的第一行声明枚举类对象。3.私有化类的构造器,并给对象属性赋值。我们可以重写toString()的方法。下面,我们查看一下它的父类。
2023-03-11 22:45:00 431 2
原创 【Java枚举类】自定义枚举类
6. 订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、Return(退货)、Checked(已确认)Fulfilled(已配货)、4. 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银 行卡)、CreditCard(信用卡)2. 在类的内部创建枚举类的实例。2.枚举类的使用 private final 修饰的属性应该在构造器中为其赋值。3.若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的。
2023-03-11 17:18:54 700
原创 【Java多线程】创建多线程的方式四:使用线程池
Executors.newScheduledThreadPool(n):创建一个线程池,它可安排在给定延迟后 运行命令或者定期地执行。Executors.newSingleThreadExecutor() :创建一个只有一个线程的线程池。Executors.newCachedThreadPool():创建一个可根据需要创建新线程的线程池。提前创建好多个线程,放入线程池中,使用时直接获取,使用完 放回池中。工具类、线程池的工厂类,用于创建并返回不同类型的线程池。
2023-02-07 00:18:59 365
原创 【Java多线程】创建多线程方式三:实现Callable接口
3.FutureTask 同时实现了Runnable, Future接口。它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值。1. 可以对具体Runnable、Callable任务的执行结果进行取消、查询是 否完成、获取结果等。2.FutrueTask是Futrue接口的唯一的实现类。实现Callable接口是JDK5.0新增线程创建方式。4.需要借助FutureTask类,比如获取返回结果。1.相比run()方法,可以有返回值。3. 支持泛型的返回值。
2023-02-06 23:16:40 903
原创 【Java多线程】Lock锁方式解决线程安全问题
1. Lock是显式锁(手动开启和关闭锁,别忘记关闭锁),synchronized是 隐式锁,出了作用域自动释放。3. 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。Lock -> 同步代码块(已经进入了方法体,分配了相应资源) -> 同步方法(在方法体之外)提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。2. Lock只有代码块锁,synchronized有代码块锁和方法锁。相同的并发性和 内存语义,在实现线程安全的控制中,比较常用的是。以上代码会出现重票,错票的情况。
2023-02-06 18:53:43 505
原创 【Java多线程】死锁问题
死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。1.出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于 阻塞状态,无法继续。我们可以看到,程序既不报异常也不会终止。2.我们使用同步时,要避免出现死锁。可以再看下面这个例子理解一下。尽量减少同步资源的定义。
2023-02-05 21:08:58 424
原创 【Java多线程】使用同步方法解决线程安全问题
模仿以上方法套用到使用同步方法处理继承Thread类的方法中的线程安全问题中,在继承Thread类创建多线程的代码中将操作共享数据的代码完整的声明在一个方法。描述:如果操作共享数据的代码完整的声明在一个方法中,我们不妨将此方法同步的。同步监视器:t1,t2,t3。在show方法中有一个默认的同步监视器“this”在show方法中有一个默认的同步监视器“this”我们可以看到还是出现的错票,这是因为上文提到的。我们将操作共享数据的代码完整的声明在一个方法。我们可以把show方法改成静态的。
2023-02-05 16:28:53 451
原创 【Java多线程】同步代码块处理线程安全问题
假如你在上厕所,另一个人很急,冲进了你所在的厕所。这就出现了安全问题。我们可以看到还是有重票的。因为上文有描述到的。题:创建三个窗口卖票,总票数为100张。根据多次运行也并未发现错票跟重票。我们首先模仿上面的方法,运行测试;
2023-02-04 16:20:05 801
原创 【Java多线程】线程的安全问题
假如你在上厕所,另一个人很急,冲进了你所在的厕所。这就出现了安全问题。因为在此阻塞了,可能出现上文的极端状态。所以不管在哪里阻塞都会出现重票,错票。我们可以看到出现了“0”票。这样重票的概率就大了。
2023-02-03 15:30:38 446
原创 【Java多线程】创建多线程的方式二---实现Runnable接口(多窗口卖票)
在第四步中的运行过程:①启动线程 ②调用当前线程的run()-->调用了Runnable类型的target的run()。如果我们不用static修饰改这么写?这个时候引入了创建多线程的方式二---->实现Runnable接口。我们可以看到窗口1,2,3都卖了票号为100的票,这个时候就要讲到线程的安全问题。因为是三个窗口共卖100张所以我们在定义ticket时要用到static来修饰。如果我们再启动一个线程,遍历100以内的偶数。题:创建三个窗口卖票,总票数为100张。举例说明:遍历100以内的偶数。
2023-01-18 17:05:44 1228
原创 【Java多线程】线程的优先级
如果装的是1.8选的9则会报错。idea快捷键ctrl+alt+shift+s。我们看一下这个工程用的jdk。我们将分线程的优先级设置为。将主线程的优先级设置为。
2023-01-17 23:56:15 1632
原创 【Java多线程】线程的常用方法
9.sleep(long millis):使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。7.join():在线程a中调用线程b的join(),此时线程就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。在线程a中调用线程b的join(),此时线程就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。2.run():通常需要重写Thread类中的此方法,将创建的线程要执行的。4.getName():获取当前线程的名字。
2023-01-15 16:34:33 1000 2
原创 【Java多线程】继承方式练习
2.重写Thread类的run() --> 将此线程执行的操作声明在run()中。1.创建一个继承于Thread类的子类。3.创建Thread类的子类的对象。4.通过此对象调用start()我们可以使用最直接的办法,写两个类继承Thread类。
2023-01-11 17:01:33 99
原创 【Java多线程】创建多线程方式一
4. 一个线程对象只能调用一次start()方法启动,如果重复调用了,则将抛出以上 的异常“IllegalThreadStateException”。2. run()方法由JVM调用,什么时候调用,执行的过程控制都有操作系统的CPU调度决定。同时我们发现run()方法由JVM调用,什么时候调用,执行的过程控制都有操作系统的CPU。1. 如果自己手动调用run()方法,那么就只是普通方法,没有启动多线程模式。方法来完成操作的,经常 把run()方法的主体称为。创建线程并指定线程实例名。方法:启动线程,调用。
2023-01-10 17:09:11 505
原创 【Java异常】处理异常
3.一旦try中的异常对象匹配到某一个catch时,就会进入catch中进行异常处理一旦处理完成,就跳出当前的try—catch结构(在没有写finally的情况)继续执行其后的代码。4.catch中的异常类型如果没有子父类关系,则谁声明在上,谁声明在下无所谓catch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面,否则报错。2.使用try将可能出现异常代码包装起来,在执行过程中,一旦出现异常,就会生成一个异常类的对象根据此对象的类型,去catch中进行匹配。1.finally是可选的。
2022-12-20 22:28:46 382
原创 【Android Studio程序开发】按钮触控---按钮控件Button
除了文本视图之外,按钮Button也是一种基础控件。因为Button是由TextView派生而来,所以文本视图 拥有的属性和方法,包括文本内容、文本大小、文本颜色等,按钮控件均能使用。不同的是,Button拥有默认的按钮背景,而TextView默认无背景;Button的内部文本默认居中对齐,而TextView的内部文本 默认靠左对齐。此外,按钮还要额外注意textAllCaps与onClick两个属性,分别介绍如下:1.textAllCaps属性对于TextView来说,text属性设置了什么文本,文本视图
2022-12-07 11:38:15 5210
原创 【Android Studio】常用布局 --- 滚动视图ScrollView
与线性布局类似,滚动视图也分为垂直方向和水平方向 两类,其中垂直滚动视图名为ScrollView,水平滚动视图名为。(1)垂直方向滚动时,layout_width属性值设置为match_parent,layout_height属性值设置为wrap_content。(2)水平方向滚动时,layout_width属性值设置为wrap_content,layout_height属性值设置为match_parent。(3)滚动视图节点下面必须且只能挂着一个子布局节点,否则会在运行时报错。运行测试App,可知。
2022-11-16 22:41:07 17442
原创 【Android Studio程序开发】常用布局--网格布局GridLayout
下面是运用网格布局的XML布局样例,它规定了一个两行两列的网格布局,且内部容纳四个文本视图。虽然线性布局既能在水平方向排列,也能在垂直方向排列,但它不支持多行多列的布局方式,只支持单 行(水平排列)或单列(垂直排列)的布局方式。由上图可见,App界面的第一行分布着浅红色背景与橙色背景的文本视图,第二行分布着绿色背景与 深紫色背景的文本视图,说明利用网格布局实现了多行多列的效果。,它先从第一行从左往右放置下级视图,塞满之后另起一行放置 其余的下级视图,如此循环往复直至所有下级视图都放置完毕。
2022-11-01 00:36:41 1894
原创 【MySQL数据库】MySQL的卸载
按键盘上的“Ctrl + Alt + Delete”组合键,打开“任务管理器”对话 框,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态,可以右键单击服务,选择“停 止”选项停止MySQL8.0的服务,如图所示。卸载MySQL8.0的程序可以和其他桌面应用程序一样直接在“控制面板”选择“卸载程序”,并在程序列表中 找到MySQL8.0服务器程序,直接双击卸载即可,如图所示。② 选择要卸载的MySQL服务器程序,单击“Remove”(移除),即可进行卸载。
2022-10-26 00:22:42 1151
原创 【Android Studio程序开发】常用布局--相对布局RelativeLayout
线性布局的下级视图是顺序排列着的,另一种相对布局的下级视图位置则由其他视图决定。相对布局名 为RelativeLayout,因为下级视图的位置是相对位置,所以得有具体的参照物才能确定最终位置。用于确定下级视图位置的参照物分两种,一种是与该视图自身平级的视图;另一种是该视图的上级视图 (也就是它归属的RelativeLayout)。上述XML文件的布局效果如下图所示,RelativeLayout的下级视图都是文本视图,控件上的文字说明 了所处的相对位置,具体的控件显示方位正如XML属性中描述的那样。
2022-10-24 20:26:54 2090
原创 【Android Studio程序开发】常用布局--线性布局LinearLayout
假设线性布局平均分为左 右两块,则甲视图和乙视图的权重比为1:1,意味着两个下级视图的layout_weight属性都是1。顾名思义,线性布局 像是用一根线把它的内部视图串起来,故而内部视图之间的排列顺序是固定的,要么从左到右排列,要 么从上到下排列。除了方向之外,线性布局还有一个权重概念,所谓权重,指的是线性布局的下级视图各自拥有多大比例 的宽高。就线性布局而言,它自身的尺寸相当于一整块蛋糕,它的下级视图们一起来分这个尺寸蛋糕,有的 视图分得多,有的视图分得少。
2022-10-18 22:20:17 3742
原创 【Android Studio程序开发】视图显示--设置视图的对齐方式
App界面上的视图排列,默认靠左朝上对齐,这也符合日常的书写格式。在XML文件中通过属性android:layout_gravity可以指定当前视图的对齐方向,当属性值为top时表 示视图朝上对齐,为bottom时表示视图朝下对齐,为left时表示视图靠左对齐,为right时表示视图靠右 对齐。它与layout_gravity的不同之处在于:layout_gravity设定了当 前视图相对于上级视图的对齐方式,而gravity设定了下级视图相对于当前视图的对齐方式;
2022-10-08 18:27:09 2137 1
原创 【Android Studio程序开发】视图显示 -- 设置视图的间距
同样是设置间距,layout_margin指的是当前视图与外部视图(包括上级视图和平级视图)之间的距 离,而padding指的是当前视图与内部视图(包括下级视图和内部文本)之间的距离。中间层的黄色背景布局,同时设置了20dp的layout_margin,以及60dp的padding,其中padding是layout_margin的三倍宽(60/20=3)。这种情况印证了:layout_margin指的是当前图层与外部图层的距离,而padding指的是当前图层与内部图层的距离。接下来做个实验,看看。
2022-10-06 22:10:07 2118
原创 【Android Studio程序开发】视图基础--设置视图的宽高
对于文本视图来说,内部文字需要多大的显示空间,当前视 图就要占据多大的尺寸。在XML文件中采用以上任一方式均可设置视图的宽高,但在Java代码中设置宽高就有点复杂了,首先确 保XML中的宽高属性值为wrap_content,这样才允许在代码中修改宽高。运行测试App,打开演示界面如图3-7所示,依据背景色判断文本视图的边界,可见wrap_content方式 刚好包住了文本内容,match_parent方式扩展到了与屏幕等宽,而300dp的宽度介于前两者之间(安卓 手机的屏幕宽度基本为360dp)。
2022-10-04 15:41:35 3436
原创 【Android Studio程序开发】文本显示 -- 设置文本的颜色
该标准又有八位十六进制数与六 位十六进制数两种表达方式,例如八位编码FFEEDDCC中,FF表示透明度,EE表示红色的浓度,DD表示 绿色的浓度,CC表示蓝色的浓度。在设置背景图片之前,先将图片文件放到res/drawable***目录(以drawable开头的目录,不仅仅是drawable目录),然后把android:background的属性值改为“@drawable/不含扩展名的图片名称”,或者调用setBackgroundResource方法填入“R.drawable.不含扩 展名的图片名称”
2022-10-02 22:41:58 10479
原创 【Android Studio程序开发】文本显示--设置文本的大小
假设某个App的内部文本使用字 号30px,则该App安装到前一部手机的字体大小为15dp,安装到后一部手机的字体大小为10dp,显然 后一部手机显示的文本会更小。一般来说,同样尺寸的屏 幕以dp计量的分辨率是相同的,比如同样是6英寸手机,无论它由哪个厂家生产,其分辨率换算成dp单 位都是一个大小。一般来说,同样尺寸的屏幕(比如6英寸手 机),如果看起来越清晰,则表示像素密度越高,以px计量的分辨率也越大。接着打开手机的设置菜单,依次选择“显示”→“字体与显示大小”,确认当前的字体为标准大小,如下图所示。
2022-09-30 20:34:51 7264
原创 【Android Studio程序开发】文本显示--设置文本内容
看到提示内容为“Hardcoded string "你好,世界", should use @string resouce”,意思说这几个字是硬编码的字符串,建议使用来自@string的资源。原来Android Studio不推荐在XML布局文件里直接写字符串,因为可能有好几个页面都显示“你好,世界”,若想把这句话换成“你吃饭了吗?至此不管XML文件还是Java代码都从strings.xml引用字符串资源,以后想把“你好,世界”改为其他文字的话,只需改动strings.xml一个地方即可。
2022-09-27 21:23:46 6708
原创 【Android程序开发】Android Studio的安装
链接:https://pan.baidu.com/s/1Nehn4B2pgFsRzGCBbRicBw。安装AS首先要安装jdk,还没有安装的朋友可以参考(下载jdk11)下载完后找到文件位置双击等100%出现图下界面点击Next。下载途径有两种:网盘下载以及官网下载(建议在官网下)下载完jdk后我们来安装AS。可以提前建一个空文件放进去。下载完成我们可以试一下。然后我们这里选择第二个。安装步骤跟上面一样。
2022-09-26 20:18:15 1303
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人